[英]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)
当我打印m
和n
,它们打印不同的值。
谁能解释一下这个功能是什么?
八度音阶 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.