请说明Octave-Error:运算符/:参数不一致(op1为1x1,op2为1x10)

时间:2019-06-25 18:04:00

标签: 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)');

如标题中所述,产生的错误如下: 错误:ger5:运算符/:参数不一致(op1为1x1,op2为1x10) 我做了很多测试,发现问题出在第9行的T变量: n = Nc *(e。^(-Eg /(2 * k * T))); < / strong> 没有它,代码运行良好。例如:

#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)');

在这种情况下,我只用500替换了T,代码运行得很好。 遗憾的是,T不能用某个数字代替,因为它是我的图形中使用的变量。尽管进行了一些挖掘工作,但我从未设法完全理解此错误或如何解决此错误,因此,我们将不胜感激任何帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

添加一个。 *,/和^符号之前。这样可以确保八度使用标量乘法而不是矩阵乘法。

class JsonObject{
    final Map<String, dynamic> _map;
    JsonObject(this._map);

    T getValue<T>(String key) {
        dynamic value = _map[key];
        if (value == null)
            throw new JsonParseException._("JsonMap: can not find value with key = "+key);
        T result = value.cast<T>();
        if (result == null)
            throw new JsonParseException._("JsonMap: value with key = "+key+" is not of requested type "+T.toString());
        return result;
    }

    String getString(String key) => getValue<String>(key);
}