[問題] 關於計算的問題已回收

看板MATLAB作者 (well)時間15年前 (2010/03/30 17:17), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/2 (看更多)
a=[1 -1 -2 -3 5 -1 -2 -5;2 3 4 5 6 1 1 1]; b=[2 2 2 2 2 2 2 2;3 3 3 3 3 1 1 1]; for i=1:2 for j=3:8 if (a(i,j-2)<0)&(a(i,j-1)<0)&(a(i,j)<0) c(i,j)=1; else c(i,j)=0; end end end ........................................................... for i=1:2 for j=1:8 if c(i,j)= =1 k=j; break end end d(i,1)=a(i,k); for i=1:2 for j=1:k-1 d(i,1)=d(i,1)./b(i,j); end end end %a矩陣每一列中如果有連續三個元素小於零,我就取出該連續元素第三個小於零的元素 %之後該列如果有第二組連續三個小於零的元素就不用管它 %另外如果該行都沒有連續三個小於零的元素 就取該列最後一個元素 %因此以a為例我希望取出a(1,4)=-3 , a(2,8)=1 %接著把取出的元素除以b如以下所列 %d(1,1)=a(1,4)./(b(1,1)*b(1,2)*b(1,3)) %d(2,1)=a(2,8)./(b(2,1)*b(2,2)*...*b(2,7)) %d矩陣就是我想得到的 %但是我寫得程式一定不對了 %因為如果a矩陣某一列中都沒有連續三個元素小於零時 應該取最後一個 %但是我不知道該怎麼加這句話進去 麻煩有好心的大大教我一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.111.210

03/30 19:17, , 1F
建議用邏輯矩陣會寫得比較簡單 例:a(1:3,1)<0 => [0 1 1]
03/30 19:17, 1F

03/30 19:19, , 2F
然後用sum() == 3 來判斷要不要取
03/30 19:19, 2F
文章代碼(AID): #1BiS75AD (MATLAB)
文章代碼(AID): #1BiS75AD (MATLAB)