Octave 尝试绘制函数N*log2(N)时出现倍频程错误

Octave 尝试绘制函数N*log2(N)时出现倍频程错误,octave,Octave,我试图用倍频程来绘制这个函数,但我得到了一个我不理解的错误。我已经成功地绘制了其他函数,但由于某种原因,这一函数不起作用 N=[1:1:50]; y1Values = N*log2(N); %plot (n, y1Values, 'LineWidth',2, n,y2Values, 'LineWidth',3); plot (N, [ y1Values' ], 'LineWidth',3); legend("e^N"); 这就产生了这个错误 error: asstemp: operat

我试图用倍频程来绘制这个函数,但我得到了一个我不理解的错误。我已经成功地绘制了其他函数,但由于某种原因,这一函数不起作用

N=[1:1:50];

y1Values = N*log2(N);

%plot (n, y1Values, 'LineWidth',2, n,y2Values, 'LineWidth',3);

plot (N, [ y1Values' ], 'LineWidth',3);

legend("e^N");
这就产生了这个错误

error: asstemp: operator *: nonconformant arguments (op1 is 1x50, op2 is 1x50)
错误:从调用 第2行第10列的asstemp


我不知道为什么*会成为一个问题。它与其他任何一种表达方式都不一致。我需要以不同的方式编写表达式吗?

因为
N
是一个向量
log2(N)
也会返回一个向量,所以您尝试将两个向量相乘。但是
*
是矩阵乘法。您需要的是元素乘法(
*
):
y1Values=N.*log2(N)