八度变量 =(矩阵,标量)是什么意思?


a=magic(5)
k=a,3

当我打印k时,它只是显示a

m=size(a,3)
n=size(a,6)

当我打印mn时,它们打印不同的值。

有人请解释一下这个功能是什么?

在八度 4.2.1

k=a,3

将矩阵a分配给变量k,然后,作为第二条指令,在命令窗口上打印值3

使用,(逗号(是为了在同一行上有两个指令。

另一种方法是将,替换为;,这具有抑制分配k=a的命令窗口上的输出的效果

关于

m=size(a,3)
n=size(a,6)

调用size的第二个参数 n 指定您想知道其大小的矩阵(第一个参数(的dimension

a是一个大小(5 x 5)的二维"维"矩阵,而指令size(a,3)寻找a第三维的大小。

以类似的方式,size(a,6)寻找a第六维的大小。在这些情况下,a被视为(5 x 5 x 1)(5 x 5 x 1 x 1 x 1 x 1)

返回值 for 为1

这是 CommandWondow 中的输出:

>> a=magic(5)
a =
17   24    1    8   15
23    5    7   14   16
4    6   13   20   22
10   12   19   21    3
11   18   25    2    9
>> k=a,3
k =
17   24    1    8   15
23    5    7   14   16
4    6   13   20   22
10   12   19   21    3
11   18   25    2    9
ans =  3
>> m=size(a,3)
m =  1
>> n=size(a,6)
n =  1

在 matlab/octave 中,有三种方法可以终止表达式(例如1+2(:

  • 带分号;
  • 带逗号,
  • 使用换行符(即按回车键(

第一个(即分号(在使用时计算表达式,但禁止其输出。另外两个(即逗号和换行符(都计算语句显示其结果

为什么同时有逗号和换行符?因为,使用逗号,您可以在同一行上计算多个表达式(并让所有表达式都显示其结果(。

注意:鉴于大多数人将他们的表达式写在单独的行中,逗号往往不经常使用,因此鲜为人知。

例子:

octave:1> 1+2, 3+4
ans =  3
ans =  7
octave:2> 1+2; 3+4;
octave:3> 1+2; 3+4
ans =  7
octave:4> 1+2, 3+4;
ans =  3
octave:5> for i = 1:3; i; end % output in each iteration is suppressed
octave:6> for i = 1:3; i, end % whereas with a comma, output is not suppressed
i =  1
i =  2
i =  3

因此,您的陈述:

a = magic(5)
k = a, 3

本质上等同于

a = magic(5)      % newline used: display value of a after assignment
k = a,            % comma used, assign value of a to k, then display k
3                 % newline used: displays the value '3' after pressing enter

此外,size函数不会做你认为它做的事情。size(a,3)返回数组a3的大小。

最新更新