我试图根据可绘制的值进行绘制,当前代码如下:
clk=handles.metricdata.clk;
y=handles.metricdata.y;
x=handles.metricdata.x;
input_signal=handles.metricdata.input_signal;
i=1;
if strcmp(handles.metricdata.currentout,'checked')==1
p_out{i}='clk, y';
i=i+1;
end
if strcmp(handles.metricdata.voltageout,'checked')==1
p_out{i}='clk, x';
i=i+1;
end
if strcmp(handles.metricdata.voltagein,'checked')==1
p_out{i}='clk, input_signal';
i=i+1;
end
Output_Plot=strjoin(p_out,', ');
Output_Plot
plot(Output_Plot);
但是情节功能无法理解输入:
Error using plot
Invalid first data argument.
Error in RTD_Simulator_Outputs>Run_Plot (line 287)
plot(Output_Plot);
当所有变量都存在时,Output_Plot的输出看起来像这样:
clk,y,clk,x,clk,input_signal
编辑:感谢prorideandhonour和BillBokeey解决了问题!:)
下面是一个工作示例,其中包含随机数据以供参考:
handles.metricdata.currentout='checked';
handles.metricdata.voltageout='checked';
handles.metricdata.voltagein='checked';
clk=[0 0 0.1 0.2 0.1 0 0];
y =[1 1 1.1 0.9 0.8 1 1];
x =[0 0.1 0 0.1 0.1 0 0.1];
input_signal=[0 0.1 0 0.1 0.1 0 0.1];
i=1;
if strcmp(handles.metricdata.currentout,'checked')==1
p_out{i}=clk;
i=i+1;
p_out{i}=y;
i=i+1;
end
if strcmp(handles.metricdata.voltageout,'checked')==1
p_out{i}=clk;
i=i+1;
p_out{i}=x;
i=i+1;
end
if strcmp(handles.metricdata.voltagein,'checked')==1
p_out{i}=clk;
i=i+1;
p_out{i}=input_signal;
i=i+1;
end
plot(p_out{:});
当前,您正在向plot函数传递一个逗号分隔的字符串列表,这与传递给它所需的变量的逗号分隔列表不同。
可以使用列运算符:从包含变量的单元格中获取用逗号分隔的变量列表。要更正您的代码,第一步将遵循以下步骤:
clk=handles.metricdata.clk;
y=handles.metricdata.y;
x=handles.metricdata.x;
input_signal=handles.metricdata.input_signal;
i=1;
if strcmp(handles.metricdata.currentout,'checked')==1
p_out{i}=clk;
i=i+1;
p_out{i}=y;
i=i+1;
end
if strcmp(handles.metricdata.voltageout,'checked')==1
p_out{i}=clk;
i=i+1;
p_out{i}=x;
i=i+1;
end
if strcmp(handles.metricdata.voltagein,'checked')==1
p_out{i}=clk;
i=i+1;
p_out{i}=input_signal;
i=i+1;
end
plot(p_out{:});
尽管您没有提供最小,完整和可验证的示例,但是无法在您的特定示例上进行测试,所以这应该可以工作
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句