matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵
比方说for循环,第一次产生的矩阵是A1,第二次是A2,就是说产生的方式相同,但生成的矩阵不同。现在新的矩阵是A=【A1;A2】.这里的循环不只两次,是n次,就是说不能直...
比方说for循环,第一次产生的矩阵是A1,第二次是A2,就是说产生的方式相同,但生成的矩阵不同。现在新的矩阵是A=【A1;A2】.这里的循环不只两次,是n次,就是说不能直接罗列。应该怎么编写呢?
谢谢! 展开
谢谢! 展开
4个回答
展开全部
搞定了,绝对是最简洁,运行效率最高的算法,就是不知道你能不能看懂。
程序如下:
clear;
clc;
x = rand(10,5); %%%%% 自己定义的矩阵
K = 3;
[a b] = size(x);
for ii = 1:K
var = x(ii:K:a,:);
eval(strcat( 'A',num2str(ii),'=var'));
end
结果:
A1 =
0.2137 0.6103 0.3124 0.6759 0.4301
0.2296 0.9325 0.2905 0.3991 0.7425
0.9621 0.5735 0.6147 0.1051 0.4293
0.0058 0.2235 0.8272 0.3545 0.8497
A2 =
0.3978 0.8011 0.5845 0.2489 0.5722
0.9361 0.7633 0.4026 0.5994 0.7579
0.4380 0.7926 0.9912 0.8214 0.9563
A3 =
0.3337 0.2330 0.8299 0.4758 0.7008
0.6832 0.8264 0.8621 0.8005 0.3891
0.9403 0.3290 0.2037 0.8411 0.5730
程序如下:
clear;
clc;
x = rand(10,5); %%%%% 自己定义的矩阵
K = 3;
[a b] = size(x);
for ii = 1:K
var = x(ii:K:a,:);
eval(strcat( 'A',num2str(ii),'=var'));
end
结果:
A1 =
0.2137 0.6103 0.3124 0.6759 0.4301
0.2296 0.9325 0.2905 0.3991 0.7425
0.9621 0.5735 0.6147 0.1051 0.4293
0.0058 0.2235 0.8272 0.3545 0.8497
A2 =
0.3978 0.8011 0.5845 0.2489 0.5722
0.9361 0.7633 0.4026 0.5994 0.7579
0.4380 0.7926 0.9912 0.8214 0.9563
A3 =
0.3337 0.2330 0.8299 0.4758 0.7008
0.6832 0.8264 0.8621 0.8005 0.3891
0.9403 0.3290 0.2037 0.8411 0.5730
展开全部
A=[];
for i=1:10 %A1至A10
eval(['A',num2str(i),'=','rand(2,5)']); %A1至A10都是2行五列的矩阵,这个要改成你想要的
eval(['A=[A;A',num2str(i),'];']); %组合A=[A1;A2;A3;...]
end
for i=1:10 %A1至A10
eval(['A',num2str(i),'=','rand(2,5)']); %A1至A10都是2行五列的矩阵,这个要改成你想要的
eval(['A=[A;A',num2str(i),'];']); %组合A=[A1;A2;A3;...]
end
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
再循环里加A=[A,A(n)];
初始A=A1;
初始A=A1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把此例子看懂
k = 0;
A = zeros( 3,1 );
for i = 1:3
k = k + 1 ;
A(i,1) = k ;
end
A 回车键
k = 0;
A = zeros( 3,1 );
for i = 1:3
k = k + 1 ;
A(i,1) = k ;
end
A 回车键
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询