作者ejialan (eji)
看板MATLAB
标题Re: [问题]程式的写法
时间Thu Jun 21 07:14:10 2012
※ 引述《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
1F:推 gotowhere:了解了,谢谢 06/21 11:52
2F:推 kevinztw:後者作法可以改为一行 b=reshape(a, [],1); 06/21 13:53
3F:→ kevinztw:他会自动算需要的row number 06/21 13:53