1

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

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

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

“如果 trigger_level >= past_sample && trigger_level <= current_sample,则 triggering_circuit(第 4 行)出错”

它没有给出任何其他错误,除了该函数没有为输出变量 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
4

1 回答 1

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

于 2013-11-14T01:27:15.060 回答