请解释 Octave-Error : operator /: nonconformant arguments (op1 is 1x1, op2 is 1x10)

Foo*_*und 1 arguments octave

我在八度音程中运行某个脚本时遇到问题。这是产生错误的代码:

#germanium
T=410:20:600;
x=linspace(400,410,100);
y=linspace(10^9,10^9,100);
k=8.5*10 .^(-5);
Eg=0.59;
Nc300=1.02*10^13;
Nc=Nc300*((T/300).^(3/2));
n=Nc*(e.^(-Eg/(2*k*T)));
plot(T,n,x,y,'m');
grid on
xlabel('Temprature');
ylabel('Electron Density n');
title('Germanium n(T)');
Run Code Online (Sandbox Code Playgroud)

如标题中所述,产生的错误如下: error: ger5: operator /: nonconformant arguments (op1 is 1x1, op2 is 1x10) 我做了很多测试,我认为问题源于第 9 行的 T 变量:n=Nc*(e.^(-Eg/(2*k*T))); 没有它,代码运行良好。例如 :

#germanium
T=410:20:600;
x=linspace(400,410,100);
y=linspace(10^9,10^9,100);
k=8.5*10 .^(-5);
Eg=0.59;
Nc300=1.02*10^13;
Nc=Nc300*((T/300).^(3/2));
n=Nc*(e.^(-Eg/(2*k*500)));
plot(T,n,x,y,'m');
grid on
xlabel('Temprature');
ylabel('Electron Density n');
title('Germanium n(T)');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我只是用 500 替换了 T ,代码运行得非常好。遗憾的是,T, 不能用某个数字代替,因为它是我图表中使用的变量。虽然我做了一些挖掘,但我从来没有完全理解这个错误,或者如何解决它,因此任何帮助将不胜感激。谢谢。

Sil*_*ver 5

添加一个 . 在 *、/ 和 ^ 符号之前。这将确保八度使用标量乘法而不是矩阵乘法。

n=Nc.*(e.^(-Eg./(2.*k.*T)));
Run Code Online (Sandbox Code Playgroud)