【问题标题】:Using set to update graphs in matlabmatlab中使用set更新图形
【发布时间】:2011-07-26 10:19:38
【问题描述】:

我正在尝试使用“set”函数将新值更新为函数。

代码如下:

daq_object = analoginput('winsound');
chan = addchannel(daq_object,1);
x=[10];
num_samples = 1000;
axes(handles.axes1);
plot_handle=surf(T,F,10*log10(P),'edgecolor','none'); 
axis tight; 
view(0,90);
xlabel('Time (Seconds)'); ylabel('Hz');

 set(daq_object,'SamplesPerTrigger',inf,'SamplesAcquiredFcnCount',num_samples,...
    'SamplesAcquiredFcn',{@update_plot,handles});

function update_plot(handles)

data = getdata(daq_object,num_samples);
[S,F,T,P] = spectrogram(data,256,250,256,1E3);

    set(plot_handle,'YData',T,F,P); % ERROR WITH THIS, UPDATING THE VARIABLES. 

end

错误是,我不知道如何更新函数中的多个变量。对于一个变量,例如:

h=plot(zeros(100,2));
for i=1:20
    set(h,'Ydata',rand(10,1));
    drawnow;
end

但在这里我需要更新 T、F 和 P 值。我如何使用 SET 来做到这一点?

我试过了:

set(plot_handle,'YData',T,F,P);

但这只是给我错误。

【问题讨论】:

  • 您的示例使用数据采集工具箱中的analoginput。由于许多可能回答您的人(包括我自己)无法使用此工具箱,您能否提供一个使用基本 MATLAB 的示例?

标签: matlab plot


【解决方案1】:

set 采用名称-值对,即在第一个变量(是图形或某些轴的句柄)之后,参数需要交替name of variable,然后是value to assign to that variable

在您失败的示例中,您有三个连续的值(TFP),中间没有名称。

【讨论】:

  • 所以我应该将set(plot_handle,'YData',T,F,P); 编辑为set(plot_handle,'XData',T,'YData',F,'ZData',P);
猜你喜欢
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多