逻辑运算符错误matlab

时间:2013-11-13 23:28:39

标签: matlab if-statement

我正在电气工程课程中编写一个功能,作为我们要构建示波器的实验室的一部分。这个特殊功能是我们的软件“触发电路”。如果满足某些条件,则该函数应该注册为1。确切的措辞是:

“编写一个名为triggering_circuit的MATLAB函数,它具有输入参数:past_sample,current_sample,trigger_level和trigger_slope。如果trigger_level介于past_sample和current_sample之间,则函数返回值1,当前样本与当前样本之间的差值为过去的样本(即current_sample - past_sample)与trigger_slope具有相同的符号。“

我们觉得我们已经正确地编写了函数,但是当我们尝试在函数中调用它时,我们得到了错误:

“triggering_circuit错误(第4行) 如果trigger_level> = past_sample&& trigger_level< = current_sample“

除了函数没有为输出变量m赋值之外,它没有给出任何其他错误。我想,那是因为该功能无法完成运行。

现在,我已经在线查看了,我不明白我们如何使用逻辑运算符错误。我真的很感激任何帮助。

功能如下:

function [ m ] = triggering_circuit( past_sample, current_sample, trigger_level, trigger_slope )

if trigger_level >= past_sample && trigger_level <= current_sample
    a = current_sample - past_sample;
    if a < 0 && trigger_slope < 0
        m = 1;
    elseif a > 0 && trigger_slope > 0
            m = 1;
    else
        m = 0;
    end
end
end

1 个答案:

答案 0 :(得分:1)

function [ m ] = triggering_circuit(past_sample, current_sample, trigger_level,  trigger_slope )
    if trigger_level >= past_sample && trigger_level <= current_sample
        a = current_sample - past_sample;
        if a < 0 && trigger_slope < 0
            m = 1;
        elseif a > 0 && trigger_slope > 0
            m = 1;
        else
            m = 0;
        end
    else
        m = 0; %# This is where you would set m = 0
    end
end

我不确定你是否已经弄清楚了,但是你必须为函数声明的输出参数返回一些东西(在这种情况下为m),在当前的设置中,有一种情况可以解决返回。

所以代码中的函数调用如下:

m = triggering_circuit(0.9884,1.0130,1,1)
调用它时返回m = 1。

此处还有逻辑操作数的参考: http://www.mathworks.com/help/matlab/ref/logicaloperatorselementwise.html http://www.mathworks.com/help/matlab/ref/logicaloperatorsshortcircuit.html