Re: [問題]程式的寫法

看板MATLAB作者 (eji)時間13年前 (2012/06/21 07:14), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

06/21 11:52, , 1F
瞭解了,謝謝
06/21 11:52, 1F

06/21 13:53, , 2F
後者作法可以改為一行 b=reshape(a, [],1);
06/21 13:53, 2F

06/21 13:53, , 3F
他會自動算需要的row number
06/21 13:53, 3F
文章代碼(AID): #1Fubb55q (MATLAB)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Fubb55q (MATLAB)