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
的命令窗口上的输出的效果
关于
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)
返回数组a
3
的大小。