[心得] 迴圈問題

作者: Lionel (祝福與成全)   2015-03-24 23:37:40
A=[1 2 3 4 5 6;
1 2 3 4 5 6;
1 2 3 9 9 9;
1 2 3 9 7 7;
1 2 3 9 7 7;]
欲得B
B=[11 12 13 14 15 16;
11 12 13 14 15 16;
11 12 13 9 9 9;
11 12 13 9 7 7;
11 12 13 9 7 7;]
如果我希望
迴圈在i第3層 碰到j第4層後(4&5&6)不跑 跳i第4層
迴圈在i第4層 碰到j第4層後(4&5&6)不跑 跳i第5層
迴圈在i第5層 碰到j第4層後(4&5&6)不跑
簡單來說 右下方那塊 保持不動
該怎麼辦?
ps
不要用
C=A(4:6,4:6);
D=A+10;
作者: profyang (prof)   2015-03-24 23:45:00
用ifif i>=3....for j=1:3類似這樣吧然後else 才for j=1:6
作者: jatj   2015-03-25 10:00:00
為什麼不要用?
作者: Lionel (祝福與成全)   2015-03-25 10:34:00
我在算一些影像處理的東西 有需要這種特殊功能知道可這樣算 但我只是把大問題拆成小問題來問
作者: physbook (路克)   2015-03-25 10:44:00
如果9和7有特殊意義的話也是可以用find啦
作者: Lionel (祝福與成全)   2015-03-25 10:44:00
真正的問題不是那麼簡單感覺是不是用continue阿?
作者: wallaceboy (YD)   2015-03-25 15:04:00
在j那層 寫 if (i > 2 ) && ( j > 2) break end把B要改成怎樣 放在if 前面和 j 迴圈中
作者: kevio (成仔)   2015-03-25 18:21:00
你要不要如何判斷 4~6 那邊矩陣的方法說出來?這樣這裡也許有神版友可以用矩陣運算幫你算用迴圈很累 @@~ matlab還是少用迴圈比較好
作者: jatj   2015-03-26 09:25:00
不是不能用迴圈 滿足幾個條件迴圈跟矩陣是一樣快的mastering matlab有詳細說明
作者: profyang (prof)   2015-03-26 17:23:00
jatj大可否稍微說明一下要那些條件呢?感謝!我測試 N=100000; a=ones(1,N)+1i*ones(1,N);b=ones(1,N)+1i*2*ones(1,N); c=zeros(1,N);tic; c=a.*b; toc;所花的時間和d=zeros(1,N);for k=1:N for k=1:N d(k)=a(k)*b(k); end這樣時間還是差很多@@ 我兩個要填的矩陣c和d也都有先宣告...印象中之前有看過文章說這時間差是平行運算造成的?
作者: jatj   2015-03-29 13:18:00
我書放公司 等週一吧

Links booklink

Contact Us: admin [ a t ] ucptt.com