在构建矩阵时,MATLAB中的(cl,:,k)中的逗号是做什么的

时间:2014-01-14 08:49:28

标签: matlab

我知道如何在MATLAB中构建矩阵,但我正在研究的例子被定义为

   a(cl,:,k)=x*ang;
已经定义了

cl,k,x和ang。我只是想知道(cl,:,k)是做什么的,特别是逗号的作用?

另外,如果我要在Excel中复制它,那么我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

  • ,中的逗号a(cl,:,k)用于分隔矩阵a的不同维度。
  • :中的冒号a(cl,:,k)用于选择此维度上的所有元素(受其他维度限制),这是1:end的简写符号。换句话说,选择了所有元素a(cl, 1:end, k),其中enda第二维的大小。

例如:

a = zeros(2, 3); // 2x3 matrix with all elements are 0
a(1, :) = [1 2 3]; // <=> a(1,1:3)=[1 2 3]; assign all elements to the first row

然后,a

 1     2     3
 0     0     0

答案 1 :(得分:0)

逗号分隔您想要访问的多维数组元素的不同轴上的索引

:表示1:end - 此处将成为该轴可能的最大索引

>> a = zeros(3,3,3)

a(:,:,1) =

     0     0     0
     0     0     0
     0     0     0


a(:,:,2) =

     0     0     0
     0     0     0
     0     0     0


a(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

>> a(1,:,1) = 1

a(:,:,1) =

     1     1     1
     0     0     0
     0     0     0


a(:,:,2) =

     0     0     0
     0     0     0
     0     0     0


a(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

>> a(2,1:end,2) = 2

a(:,:,1) =

     1     1     1
     0     0     0
     0     0     0


a(:,:,2) =

     0     0     0
     2     2     2
     0     0     0


a(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

>> a(1,1,:) = 5

a(:,:,1) =

     5     1     1
     0     0     0
     0     0     0


a(:,:,2) =

     5     0     0
     2     2     2
     0     0     0


a(:,:,3) =

     5     0     0
     0     0     0
     0     0     0