[心得] 迴圈問題

看板MATLAB作者 (跟快樂交往)時間10年前 (2015/03/24 23:38), 編輯推噓5(5019)
留言24則, 6人參與, 最新討論串1/1
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; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.241.218 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1427211487.A.5C4.html

03/24 23:45, , 1F
用if
03/24 23:45, 1F

03/24 23:50, , 2F
if i>=3....for j=1:3類似這樣吧
03/24 23:50, 2F

03/24 23:51, , 3F
然後else 才for j=1:6
03/24 23:51, 3F

03/25 10:00, , 4F
為什麼不要用?
03/25 10:00, 4F

03/25 10:34, , 5F
我在算一些影像處理的東西 有需要這種特殊功能
03/25 10:34, 5F

03/25 10:44, , 6F
知道可這樣算 但我只是把大問題拆成小問題來問
03/25 10:44, 6F

03/25 10:44, , 7F
如果9和7有特殊意義的話也是可以用find啦
03/25 10:44, 7F

03/25 10:44, , 8F
真正的問題不是那麼簡單
03/25 10:44, 8F

03/25 10:55, , 9F
感覺是不是用continue阿?
03/25 10:55, 9F

03/25 15:04, , 10F
在j那層 寫 if (i > 2 ) && ( j > 2) break end
03/25 15:04, 10F

03/25 15:05, , 11F
把B要改成怎樣 放在if 前面和 j 迴圈中
03/25 15:05, 11F

03/25 18:21, , 12F
你要不要如何判斷 4~6 那邊矩陣的方法說出來?
03/25 18:21, 12F

03/25 18:22, , 13F
這樣這裡也許有神版友可以用矩陣運算幫你算
03/25 18:22, 13F

03/25 18:23, , 14F
用迴圈很累 @@~ matlab還是少用迴圈比較好
03/25 18:23, 14F

03/26 09:25, , 15F
不是不能用迴圈 滿足幾個條件迴圈跟矩陣是一樣快的
03/26 09:25, 15F

03/26 09:25, , 16F
mastering matlab有詳細說明
03/26 09:25, 16F

03/26 17:23, , 17F
jatj大可否稍微說明一下要那些條件呢?感謝!
03/26 17:23, 17F

03/26 17:24, , 18F
我測試 N=100000; a=ones(1,N)+1i*ones(1,N);
03/26 17:24, 18F

03/26 17:24, , 19F
b=ones(1,N)+1i*2*ones(1,N); c=zeros(1,N);
03/26 17:24, 19F

03/26 17:25, , 20F
tic; c=a.*b; toc;所花的時間和
03/26 17:25, 20F

03/26 17:28, , 21F
d=zeros(1,N);for k=1:N for k=1:N d(k)=a(k)*b(k); end
03/26 17:28, 21F

03/26 17:28, , 22F
這樣時間還是差很多@@ 我兩個要填的矩陣c和d也都有先宣
03/26 17:28, 22F

03/26 17:29, , 23F
告...印象中之前有看過文章說這時間差是平行運算造成的?
03/26 17:29, 23F

03/29 13:18, , 24F
我書放公司 等週一吧
03/29 13:18, 24F
文章代碼(AID): #1L4OJVN4 (MATLAB)
文章代碼(AID): #1L4OJVN4 (MATLAB)