MATLAB:追加字符串以制作情节

时间:2016-05-03 12:33:51

标签: 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

编辑: 问题解决了感谢proudandhonour和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{:});

1 个答案:

答案 0 :(得分:0)

您目前正在向绘图函数传递一个以逗号分隔的字符串列表,这与传递它所需的变量的逗号分隔列表不同。

可以通过使用包含变量的单元格中的列运算符来获取逗号分隔的变量列表。纠正代码的第一步是:

<div>
    <fieldset class="rating">
        <!-- 5 Stars -->
        <input type="radio" id="stars5" name="rating" value="5" /><label class="full" for="stars5" title="Awesome - 5/5"></label>
        <!-- 4 Stars -->
        <input type="radio" id="star4" name="rating" value="4" /><label class = "full" for="star4" title="Pretty good - 4/5"></label>
        <!-- 3 Stars -->
        <input type="radio" id="star3" name="rating" value="3" /><label class = "full" for="star3" title="Decent - 3/5"></label>
        <!-- 2 Stars -->
        <input type="radio" id="star2" name="rating" value="2" /><label class = "full" for="star2" title="Would not play again - 2/5"></label>
        <!-- 1 Star -->
        <input type="radio" id="star1" name="rating" value="1" /><label class = "full" for="star1" title="Complete garbage - 1/5"></label>
    </fieldset>
</div>

这应该可行,但由于您未提供Minimal, Complete, and Verifiable example

,因此无法对您的特定示例进行测试