Matlab中的关系算子与倍频程
这段代码在八度音阶下工作得很好,但在Matlab中却不行。但是为什么呢?有什么解决办法吗?谢谢Matlab中的关系算子与倍频程,matlab,octave,bsxfun,Matlab,Octave,Bsxfun,这段代码在八度音阶下工作得很好,但在Matlab中却不行。但是为什么呢?有什么解决办法吗?谢谢 a = [0; 5; 10]; b = [3 5 7]; a >= b 倍频程特性: 0 0 0 1 1 0 1 1 1 Error using > Matrix dimensions must agree. Matlab行为: 0 0 0 1 1 0 1 1 1 Error using > Matrix
a = [0; 5; 10];
b = [3 5 7];
a >= b
倍频程特性:
0 0 0
1 1 0
1 1 1
Error using >
Matrix dimensions must agree.
Matlab行为:
0 0 0
1 1 0
1 1 1
Error using >
Matrix dimensions must agree.
使用
bsxfun
:
>> bsxfun( @ge, a, b )
ans =
0 0 0
1 1 0
1 1 1
太有趣了 使用
bsxfun
:
>> bsxfun( @ge, a, b )
ans =
0 0 0
1 1 0
1 1 1
太有趣了 这是因为倍频程是自动广播的,在Matlab中,你必须自己做。最有效的方法通常是
bsxfun
。这是因为倍频程是自动广播的,在Matlab中你必须自己做。最有效的方法通常是bsxfun
。