【问题标题】:Why is MATLAB giving me an error that states that "index in position 2 is invalid"?为什么 MATLAB 给我一个错误,指出“位置 2 的索引无效”?
【发布时间】:2020-04-20 23:04:33
【问题描述】:

这段代码看起来应该很简单,但由于某种原因,我不断收到此错误:“位置 2 的索引无效。数组索引必须是正整数或 逻辑值。”

它指的是这些行:

Vr = (V*R)/(sqrt((R^2)+(w*L-(1/(w*C))^2)));
VR(1,i) = Vr;

我试过检查我是否输入了错误的等式,或者我是否必须将某些值保存为整数,但似乎没有任何效果。任何建议将不胜感激。

如果你需要,这里是完整的代码:

disp('Please enter Vo in volts, R in kiloOhms, L in miliHenries, and C in picoFarads');
input = input('Enter values as single matrix.  ');

V = input(1,1);
R = input(1,2);
L = input(1,3);
C = input(1,4);

VR = zeros(1,1000);      

for i = 0:1000
    w=i*10*10^-9;
    Vr = (V*R)/(sqrt((R^2)+(w*L-(1/(w*C))^2)));
    VR(1,i) = Vr;
end

谢谢!

【问题讨论】:

  • 因为您在第一次调用外观时就将VR(1,0) 编入索引。而0 不是有效索引

标签: matlab


【解决方案1】:

您的 for loop 从零开始,但 Matlab 是 1 索引语言。

VR = zeros(1,1000);      

for i = 1:1000 % <- Mistake was here, change zero to one
    w=i*10*10^-9;
    Vr = (V*R)/(sqrt((R^2)+(w*L-(1/(w*C))^2)));
    VR(1,i) = Vr;
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多