我正在电气工程课程中编写一个功能,作为我们要构建示波器的实验室的一部分。这个特殊功能是我们的软件“触发电路”。如果满足某些条件,则该函数应该注册为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
答案 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