Matlab填充三维数组。

时间:2013-02-26 21:32:27

标签: arrays matlab multidimensional-array

我对Matlab很新,我正在尝试填充三维数组。基本上我在一个1x81矩阵中有4个4x1x81矩阵。我尝试使用for循环将每个1x81拼接成4x1x81,但到目前为止还没有任何运气。我确信有一种更简单的方法,但需要一双新鲜的眼睛。任何帮助将不胜感激,谢谢!

3 个答案:

答案 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