matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵相关的知识,希望对你有一定的参考价值。

比方说for循环,第一次产生的矩阵是A1,第二次是A2,就是说产生的方式相同,但生成的矩阵不同。现在新的矩阵是A=【A1;A2】.这里的循环不只两次,是n次,就是说不能直接罗列。应该怎么编写呢?
谢谢!

搞定了,绝对是最简洁,运行效率最高的算法,就是不知道你能不能看懂。
程序如下:
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 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本回答被提问者和网友采纳
参考技术B 再循环里加A=[A,A(n)];
初始A=A1;
参考技术C 把此例子看懂
k = 0;
A = zeros( 3,1 );
for i = 1:3
k = k + 1 ;
A(i,1) = k ;
end
A 回车键

计算每一次循环的时间并储存形成矩阵 matlab

如题,需要将每一次循环所耗费的时间记录下来,求帮助

参考技术A t0=clock;
....
t1=clock;
t=etime(t1-t0);本回答被提问者采纳
参考技术B 用tic toc组合

以上是关于matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵的主要内容,如果未能解决你的问题,请参考以下文章

matlab - 如何合并/交错 2 个矩阵?

计算每一次循环的时间并储存形成矩阵 matlab

如何将函数应用于 MATLAB 中矩阵的每一行/列?

matlab中后一次循环把前一次循环产生的数组覆盖掉怎么解决

matlab中,如何在for循环中把每一个元胞数组都写成excel文件

matlab怎样通过for循环语句找出两矩阵相同的行和列?