看板 MATLAB 關於我們 聯絡資訊
※ 引述《gotowhere (goto)》之銘言: : 請問一下,我想把 : 行向量a1 : 行向量a2 : 行向量a3 : . : . : . : 行向量an : 變成 : b=[a1;a2;a3;...;an] : 有比較簡便的寫法嗎? : 就是可以讓我不用1 2 3 4 ...n一直打下去 : 謝謝 你要思考的應該是怎麼把b=[a1;a2;a3;...;an]這個字串做出來 然後再eval 以n=3為例 str='b=['; for i=1:3 str=[str,'a',num2str(i),';']; end str=[str,']']; eval(str) 迴圈裡是做每次把字串加入ai; 前面有個'b=[' 後面有個']' 放在迴圈的前後 這是a1~an都已經存在的作法 但更好的作法是一開始變數就不要存成a1~an 而是存為矩陣a 你自己知道a(:,1)代表a1, a(:,2)代表a2 這樣的話就只要 [m,n]=size(a); b=reshape(a,m*n,1); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.20.167
gotowhere:瞭解了,謝謝 06/21 11:52
kevinztw:後者作法可以改為一行 b=reshape(a, [],1); 06/21 13:53
kevinztw:他會自動算需要的row number 06/21 13:53