【问题标题】:For loop in MATLAB for vectorsMATLAB中的for循环用于向量
【发布时间】:2016-08-16 23:10:53
【问题描述】:

我运行以下代码并希望得到一个向量 IB,我确实得到了一个向量,但所有元素都相同我不知道这段代码有什么问题?

function IB = ibtest(VCC)
    RL = [1000, 10000, 200000, 400000, 600000, 800000, 1000000];
    RB = 22000;
    RP = 50;
    R = 470;
    B = 300;
    i = 0;
    for t = 1:length(RL)
        i = i+1;
        IB(i) = ((VCC - 2.1)*(RL(i) + RP)) / ( (RL(i) * RP) + (RB*(RL(i) + RP)) + (301 * 470 * (RL(i) + RP)) );
    end
    IB
end

【问题讨论】:

  • 你能不能把你的 i 换成 t
  • 试试format longIB 值实际上可能不同。用format long 试试IB(2)-IB(1)
  • 用长格式解决问题,谢谢!

标签: matlab for-loop vectorization


【解决方案1】:

您的代码没有问题。当您每次迭代将分子和分母增加相同的分数时,您应该得到相等的数字。尝试运行此代码:

function IB = ibtest(VCC)
    RL = [1000, 10000, 200000, 400000, 600000, 800000, 1000000];
    RB = 22000;
    RP = 50;
    R = 470;
    B = 300;
    for t = 1:length(RL)
        num = ((VCC - 2.1)*(RL(t) + RP))
        denom = ( (RL(t) * RP) + (RB*(RL(t) + RP)) + (301 * 470 * (RL(t) + RP)) )
        IB(t) = num / denom
    end
end

我也不知道你想计算什么,所以如果你没有得到你期望的结果,那么公式肯定有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2023-03-25
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多