逻辑运算符错误 MATLAB



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

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

我们

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

"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
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.htmlhttp://www.mathworks.com/help/matlab/ref/logicaloperatorsshortcircuit.html

最新更新