Octave中变量=(矩阵,标量)的含义是什么?

时间:2017-07-19 06:57:25

标签: matlab octave

a=magic(5)
k=a,3

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

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

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

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

2 个答案:

答案 0 :(得分:3)

On 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的第三维尺寸。

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

返回值,为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

希望这有帮助,

Qapla'

答案 1 :(得分:2)

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

  • 使用分号;
  • 使用逗号,
  • 使用换行符(即按Enter键)

使用时的第一个(即分号)评估表达式,但抑制其输出。另外两个(即逗号和换行符)都评估语句显示其结果

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

注意:鉴于大多数人在不同的行中编写表达式,逗号往往不会被广泛使用,因此不太为人所知。

示例:

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)返回a rd维度中数组3的大小。