Octave 中的 variable = (matrix,scalar) 是什么意思?

What is meant by variable = (matrix,scalar) in Octave?

a=magic(5)
k=a,3

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

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

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

谁能解释一下这个函数是什么?

在 Octave 4.2.1 上

k=a,3

将矩阵 a 赋值给变量 k,然后,作为第二条指令,在 CommandWindow 上打印值 3.

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

另一种方法是将 , 替换为 ;,它的作用是抑制在赋值 k=a

的 CommandWindow 上的输出

关于

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

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

a 是大小为 (5 x 5) 的二维“维”矩阵,而指令 size(a,3) 查找 a.[=32 的第三维大小=]

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

return值,因为是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中,有3种方式终止一个表达式(如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) returns 数组 a3 维度的大小。