作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 03:34:24
matlab 怎么把不同长度的向量存放在同一个矩阵中
代码:
-----------------------------------------
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