matlab 怎么把不同长度的向量存放在同一个矩阵中

 我来答
wfc1102
推荐于2017-11-25 · TA获得超过495个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:439万
展开全部
代码:
-----------------------------------------
a=1:10;
b=1:20;
num=[];
num=[num length(a)];
num=[num length(b)]; %依次类推
m=length(num);
n=max(num);
c=zeros(m,n)*1/0; %用无穷大填充NaN
%c=zeros(m,n); %用零填充
c(1,1:num(1))=a;
c(2,1:num(2))=b;
c
----------------------------------
结果:
c =

1 2 3 4 5 6 7 8 9 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
追问
如果用for循环呢?
for i = 1:10;
A = 1:2:2*i;
end
怎样把每次产生的向量A存到一个矩阵B里面?
追答
在原程序上稍微改改就是了呗。
如果不介意内存消耗的话,可以事先定义一个超大的数组,在最后再取出来。
clc;clear;close
B=zeros(100,100)*1/0;
row=10;
num=[];
for i=1:row
A=[];
A = 1:2:2*i;
num=[num length(A)];
B(i,1:length(A))=A;
end
column=max(num);
C=B(1:row,1:column)
结果:
-----------------------------------------
C =

1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 3 NaN NaN NaN NaN NaN NaN NaN NaN
1 3 5 NaN NaN NaN NaN NaN NaN NaN
1 3 5 7 NaN NaN NaN NaN NaN NaN
1 3 5 7 9 NaN NaN NaN NaN NaN
1 3 5 7 9 11 NaN NaN NaN NaN
1 3 5 7 9 11 13 NaN NaN NaN
1 3 5 7 9 11 13 15 NaN NaN
1 3 5 7 9 11 13 15 17 NaN
1 3 5 7 9 11 13 15 17 19
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式