我对Matlab很新,我正在尝试填充三维数组。基本上我在一个1x81
矩阵中有4个4x1x81
矩阵。我尝试使用for循环将每个1x81
拼接成4x1x81
,但到目前为止还没有任何运气。我确信有一种更简单的方法,但需要一双新鲜的眼睛。任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
我会给你一个例子然后你应用相同的技术。您必须使用colon
或:
运算符来完成此任务。
a=1;b=2;c=3;
然后可以形成3-D矩阵:
new3D_Mat(:,:,1)=a;
new3D_Mat(:,:,2)=b;
new3D_Mat(:,:,3)=c;
Output:
>> new3D_Mat
new3D_Mat(:,:,1) =
1
new3D_Mat(:,:,2) =
2
new3D_Mat(:,:,3) =
3
答案 1 :(得分:0)
你究竟尝试了什么? matrix(1,1,:)=myvector;matrix(2,1,:)=anotherone;
或用循环变量替换第一个索引的循环怎么样?考虑
>> m(1,1,:)=rand(1,3)
m =
(:,:,1) =
0.3478
(:,:,2) =
0.0276
(:,:,3) =
0.5313
出于好奇,4x81矩阵出了什么问题? (如果您已经拥有一个,permute
可能会帮助您获得4x1x81 3d阵列。)
答案 2 :(得分:0)
为什么要使用4x1x81
矩阵?
看看从四个4x81
矩阵创建1x81
矩阵是多么容易。
% Matrix of all ones
a = ones(1, 81);
% Matrix of all twos
b = ones(1, 81);
b = b .*2;
% Matrix of all threes
c = ones(1, 81); c = c .*3;
% Matrix of all fours
d = ones(1, 81); d = d .*4;
% Aggregate
all_of_em = [a; b; c; d];
运行whos
查看您的变量。
Name Size Bytes Class Attributes
a 1x81 648 double
all_of_em 4x81 2592 double
b 1x81 648 double
c 1x81 648 double
d 1x81 648 double