推 celestialgod: 設一個變數k=1,if成立assign B(k)為A(i, j),而且k 03/22 18:52
→ celestialgod: 遞增 03/22 18:52
→ celestialgod: 我覺得A(A/2>1)應該出的來 03/22 18:53
推 profyang: 就3F那樣就好了 matlab就是盡量不要寫迴圈 03/22 19:43
→ profyang: 不過可能你要先定義C=A'然後B=C(C/2>0)出來才是你要的B 03/22 19:44
→ profyang: 1 03/22 19:45
→ profyang: 你真的想寫迴圈的話 外面先定B=[];然後迴圈裏面就 03/22 19:46
→ profyang: B=[B;a(i,j)] 03/22 19:46
A=[0 1 3 4;
5 6 1 1;
7 0 1 8;
9 0 0 0;];
B=[];
N=1;
for i=1:4
for j=1:4
if A(i,j)/2>1
B(1,N)=[A(i,j)];
N=N+1;
end
end
end
感謝大家 我大概知道了
※ 編輯: Lionel (118.171.65.126), 03/22/2015 21:48:59
→ Lionel: 主要是我的if是在call別的矩陣 我只是把問題縮小來問 03/22 21:50
→ Lionel: 其實我也很討厭跑for 會很慢 03/22 21:55
推 profyang: 假設你別的矩陣是D 你一樣可以寫A(D/2>1) 只要A和D這兩 03/22 22:04
→ profyang: 矩陣size一樣 03/22 22:05
→ ja20331: A=A'; B=A(find(A/2>1))'; 03/23 00:13