1

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

4

3 回答 3

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 数组。)

于 2013-02-26T21:49:41.753 回答
0

我会给你一个例子,然后你应用同样的技术。您必须使用colonor:运算符来完成此任务。

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
于 2013-02-26T21:47:33.253 回答
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   
于 2013-03-01T03:45:35.193 回答