[問題] 判斷矩陣的先後順序後,依序存放至cell已回收

看板MATLAB作者 (期待夏天)時間16年前 (2010/03/06 22:35), 編輯推噓2(2014)
留言16則, 2人參與, 最新討論串1/1
我有三個矩陣分別為 A1=[2 3 4]. A2=[4 3], A3=[1 5] 利用另一個矩陣 B 來判斷此三個矩陣 存放至A=cell(1,3)的先後順序 B=[2 3 1 %為矩陣Ai的編號 1 2 3] %矩陣的先後順序 則 A(1,1) ={A2} A(1,2) ={A3} A(1,3) ={A1} 我有試著用下面方法寫 但cell裡面存放為字串 {{A1},{A2},{A3}} 並非是我想要的矩陣 {{[2 3 4]},{[4 3]},{[1 5]}} 程式: for a=1:3 % 儲存順序 i=B(1,a); %矩陣編號 X=strcat('A',num2str(i),''); A(1,a)={X}; end 不知道有沒有比較好的方法可以解決~~ 麻煩大家了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.142.45

03/06 22:41, , 1F
A{1}=A2 其他類推
03/06 22:41, 1F

03/06 22:48, , 2F
我必須用判斷的方式來寫, 因為B矩陣內的所表示矩陣A
03/06 22:48, 2F

03/06 22:49, , 3F
順序是隨機的 所以我必須要用判斷式來寫
03/06 22:49, 3F

03/06 22:51, , 4F
這部份是我程式裡面的一小部份,沒辦法直接用指定的XD
03/06 22:51, 4F

03/06 23:15, , 5F
迴圈裡的A{a}=X改用eval(['A{',int2str(a),'}=',X])
03/06 23:15, 5F

03/06 23:15, , 6F
另外你的B其實一維就行了
03/06 23:15, 6F

03/06 23:16, , 7F
A(1,a)={X}
03/06 23:16, 7F

03/06 23:32, , 8F
謝謝~~ 我已經解決了
03/06 23:32, 8F

03/06 23:33, , 9F
用if 跟 elseif的方式
03/06 23:33, 9F

03/07 00:14, , 10F
>"< 還是有點不懂eval的用法, 資質有點駑鈍= ="
03/07 00:14, 10F

03/07 00:16, , 11F
迴圈內 i=B(1,a); %矩陣編號
03/07 00:16, 11F

03/07 00:17, , 12F
eval(['A{',int2str(a),'}=',X]) % a是要指矩陣編號
03/07 00:17, 12F

03/07 00:18, , 13F
A(1,a)={X};
03/07 00:18, 13F

03/07 00:19, , 14F
是這樣嗎??
03/07 00:19, 14F

03/07 00:29, , 15F
A(1,a)={X} <---這行換成eval那行
03/07 00:29, 15F

03/07 00:55, , 16F
有了~~ 非常感謝~ 終於搞懂eval
03/07 00:55, 16F
文章代碼(AID): #1BacXCLp (MATLAB)
文章代碼(AID): #1BacXCLp (MATLAB)