matlab,怎么让很多列矩阵,合并成一个列矩阵,像图中的矩阵怎么合并成一个

作者&投稿:骆先 (若有异议请与网页底部的电邮联系)
MATLAB中怎样将多个行向量合并为一个矩阵~

使用for循环将多个行向量合成一个行向量或者一个多维矩阵。
代码:
例:matlab使用时需要将M、N替换成实际值。
clc;clear all;close all
x0=zeros(1,N*M);
y0=zeros(1,N*M);
z0=zeros(1,N*M);
for i=1:M
t=-N/2:N/2-1;
x0(N*(i-1)+t+N/2+1)=t+i; %3*i-3+t+2
y0(N*(i-1)+t+N/2+1)=2*t+i;
z0(N*(i-1)+t+N/2+1)=4*t+i;
end
plot3(x0,y0,z0);
另外,也可以使用多维矩阵的形式,还是上面的例子,假设组成一个(M,N,3)的矩阵:
clc;clear;close all
mat=zeros(M,N,3);
for i=1:M
t=-N/2:1:N/2+1;
mat(i,:,1)=t+i;
mat(i,:,2)=t*2+i;
mat(i,:,3)=t*4+i;
plot3(mat(i,:,1),mat(i,:,2),mat(i,:,3))
hold on
end
axis([-700,700,-700,700,3,8])
grid on

扩展资料其它方法:
1、两个行相量的合并:
a = [1,0,1,0];
b = [0,1,0,1];
I = [a ; b];
2、有限个行向量的合并:
如要合并a,b,c,d,I = [a ; b ;c ;d];
直接像两个行向量的合并一样写成
3、N个行相量的合并:
假设每次往I中合并的行向量为I0,用循环
I = [];
for i = 1 : N
I0 = []; %I0的内容根据需要而定
I = [ I ; I0];
end

首先确保每一个行矩阵的维数一样;简单例子如下:
clc;clear;
a1=[1 2 3 4 5];
a2=[4 5 6 7 8];
a3=[3 4 5 6 7];
%合并矩阵a1、a2、a3到A
A=[a1;a2;a3]
运行结果:
A =

1 2 3 4 5
4 5 6 7 8
3 4 5 6 7

如果列向量的数量不多而且是确定的,可以直接合并,例如

Hat_X = [Hat_X1; Hat_X10; Hat_X100];
如果要合并的列向量数量很多或者数量不确定,可以通过程序生成一个类似上述表达式的字符串,然后用eval执行。注意,这种情况需要变量名有一定规律才行。


澄城县18018698915: matlab矩阵如何将所有行的元素合并成一列A=【1,2,3;4,5,6,;7,8,9;10,11,12】合并成A=【1;2;3;4;5;6;7;8;9;10;11;12】 -
兀有莎因特:[答案] % reshape可以重排矩阵,reshape(M, m, n)将矩阵M重排成m * n A = 1:12; % A = [1 2 ... 12] A = reshpape(A, 4, 3); % A = [1 2 3; ...; 10 11 12] A = reshape(A, 12, 1); % A = [1; 2; ...; 12]

澄城县18018698915: 在Matlab里如何将多个矩阵A1、A2、A3(例如 3行6列)合并成一个例如[A1;A2;A3]的矩阵. -
兀有莎因特: 直接这样就行了【前提是行数要相等】 A = [A1; A2; A3]

澄城县18018698915: 怎样用matlab对多个矩阵绘图后并列排在一起 -
兀有莎因特: 用plot画曲线图的时候加上hold on就能在原有的基础上继续画,比如代码可以是 for i=1:24 plot(A(:,i)); hold on; end

澄城县18018698915: matlab如何将多个一维矩阵合并成一个 -
兀有莎因特: 如果ai是列向量,直接用A=[a1, a2, a3, ... an]就可以.如果是按行向量组合,用A=[a1; a2; a3; ... an]

澄城县18018698915: matlab中生成的N个矩阵如何构造成为集合 -
兀有莎因特: 使用reshape(X ,m,n)函数 reshape把指定的矩阵改变形状,但是元素个数不变, 例如,行向量: a = [1 2 3 4 5 6] 执行下面语句把它变成3行2列: b = reshape(a,3,2) 执行结果: b = 1 4 2 5 3 6 若a=[1 2 3 4 5 6 7 8 9] 使用reshpe后想得到b=[1 2 3 4 5 6 7 8 9] 只需要将a转置一下就可以了: b=reshape(a',1,9)

澄城县18018698915: 如何实现把matlab中多个距阵的列合并,生成一个新的距阵 -
兀有莎因特: 1. 取出想要的列的数据 例如 tp1=a(:,2); 取a的第二列数据2. 数据合并 data=[ tp1 tp2 tp3] 中括号中间没有分号

澄城县18018698915: MATLAB 怎么把100个行列相同的矩阵合并成一个矩阵,行改变,列不变 -
兀有莎因特: a=[1 2 3 4;5 6 7 8;9 1 2 3];% 将第二列转化为第二列与第三列的差 a(:,2)=a(:,2)-a(:,3); % 此时矩阵整理完毕,其他列不变,查看a a

澄城县18018698915: matlab如何将多列元素合并成一列? -
兀有莎因特: a =0 11 30 22 43 58 38 76 79 45 74 59 65 64 84 36 0 你可以试试b=a(:),或者b=a';c=b(:);多试试吧.甚至可以看看reshape啊

澄城县18018698915: matlab如何把208个矩阵中的第一列和最后一列 合并成一个矩阵 -
兀有莎因特: 设源矩阵为A{208} S=[]; for i=1:208 S=[S,A{i}(:,1),A{i}(:,end)]; end S

澄城县18018698915: matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵 -
兀有莎因特: A=[]; for i=1:10 %A1至A10eval(['A',num2str(i),'=','rand(2,5)']); %A1至A10都是百2行五列的矩阵度,这个专要改成你想要属的eval(['A=[A;A',num2str(i),'];']); %组合A=[A1;A2;A3;...] end

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网