MATLAB:附加字符串以进行绘图

我试图根据可绘制的值进行绘制,当前代码如下:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章