繁体   English   中英

Octave 中的变量 = (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 ,它们打印不同的值。

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

八度音阶 4.2.1

k=a,3

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

, (逗号)用于在同一行中有两条指令。

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

关于

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

第二个参数 n 调用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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM