Geo*_*off 46
A = zeros(20, 10, 3); %# Creates a 20x10x3 matrix
Run Code Online (Sandbox Code Playgroud)
B = zeros(4,4);
C = zeros(size(B,1), size(B,2), 4); %# New matrix with B's size, and 3rd dimension of size 4
C(:,:,1) = B; %# Copy the content of B into C's first set of values
Run Code Online (Sandbox Code Playgroud)
零只是制作新矩阵的一种方法.另一种可能是A(1:20,1:10,1:3) = 03D矩阵.要确认您可以运行的矩阵的大小:size(A)给出20 10 3.
矩阵可能具有的维数没有明确的界限.
Jon*_*nas 10
如果要定义包含全零的3D矩阵,请编写
A = zeros(8,4,20);
Run Code Online (Sandbox Code Playgroud)
所有的使用ones,所有NaN的用途NaN,所有虚假用途false而不是zeros.
如果您有现有的2D矩阵,则可以在"第三维"中指定一个元素,并且矩阵会被扩充以包含新元素.必须添加的所有其他新矩阵元素都设置为零.
例如
B = magic(3); %# creates a 3x3 magic square
B(2,1,2) = 1; %# and you have a 3x3x2 array
Run Code Online (Sandbox Code Playgroud)
我使用Octave,但Matlab具有相同的语法.
创建3d矩阵:
octave:3> m = ones(2,3,2)
m =
ans(:,:,1) =
1 1 1
1 1 1
ans(:,:,2) =
1 1 1
1 1 1
Run Code Online (Sandbox Code Playgroud)
现在,假设我有一个2D矩阵,我希望在新的维度中扩展:
octave:4> Two_D = ones(2,3)
Two_D =
1 1 1
1 1 1
Run Code Online (Sandbox Code Playgroud)
我可以通过创建一个3D矩阵来扩展它,将其中的第一个2D设置为旧的(这里我有第三个维度的第二个):
octave:11> Three_D = zeros(2,3,2)
Three_D =
ans(:,:,1) =
0 0 0
0 0 0
ans(:,:,2) =
0 0 0
0 0 0
octave:12> Three_D(:,:,1) = Two_D
Three_D =
ans(:,:,1) =
1 1 1
1 1 1
ans(:,:,2) =
0 0 0
0 0 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121214 次 |
| 最近记录: |