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)
当我打印 m
和 n
时,它们打印不同的值。
谁能解释一下这个函数是什么?
在 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 数组 a
在 3
维度的大小。
a=magic(5)
k=a,3
当我打印 k
时,它只显示 a
。
m=size(a,3)
n=size(a,6)
当我打印 m
和 n
时,它们打印不同的值。
谁能解释一下这个函数是什么?
在 Octave 4.2.1 上
k=a,3
将矩阵 a
赋值给变量 k
,然后,作为第二条指令,在 CommandWindow 上打印值 3
.
使用,
(逗号)是为了在同一行上有两条指令。
另一种方法是将 ,
替换为 ;
,它的作用是抑制在赋值 k=a
关于
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 数组 a
在 3
维度的大小。