我对 Matlab 很陌生,正在尝试填充一个 3 维数组。基本上我1x81
在一个矩阵中有 4 个我想要的4x1x81
矩阵。我尝试使用 for 循环将每个都拼接1x81
成一个4x1x81
,但到目前为止还没有任何运气。我敢肯定有一个更简单的方法,但需要一双新的眼睛。任何帮助将不胜感激,谢谢!
问问题
3127 次
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
我会给你一个例子,然后你应用同样的技术。您必须使用colon
or:
运算符来完成此任务。
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 回答