C'è un errore nell'istruzione
set(figureHandle,'Ydata',ax);
MatLab avrebbe dovuto generare il seguente messaggio di errore:
The name 'Ydata' is not an accessible property for an instance of class
'figure'.
Non lo ha fatto?
La proprietà
YData (e, di conseguenza, le ordinate dei punti di un grafico) è accessibile:
[*] direttamente tramite
l'handle del grafico (plot)
Esempio
% Creazione della "figure"
hf=figure
% Creazioine degli assi cartesiani
axes_handle=axes
% Definizione di punti da plottare
x=0:.1:2*pi;
y=sin(x)
% Plot dei punti
plot_handle=plot(x,y)
grid on
% Aggiornamento dei valori delle ascisse
y2=y*2;
%
% OPZIONE #1
% Aggiornamento del grafico (accesso diretto tramite l'handle del "plot"
%
set(plot_handle,'Ydata',y2);
In questo caso, quindi dovresti modificare l'istruzione
set(figureHandle,'Ydata',ax);
in
set(plotHandle,'Ydata',ax);
[*] indirettamente, come proprietà della proprietà
children degli assi
Esempio
% Creazione della "figure"
hf=figure
% Creazioine degli assi cartesiani
axes_handle=axes
% Definizione di punti da plottare
x=0:.1:2*pi;
y=sin(x)
% Plot dei punti
plot_handle=plot(x,y)
grid on
% Aggiornamento dei valori delle ascisse
y2=y*2;
%
% OPZIONE #2
% Aggiornamento del grafico (accesso indiretto tramite "children"
%
children_handle=get(axes_handle,'children')
set(children_handle,'Ydata',y2);
In questo caso, quindi dovresti modificare l'istruzione
set(figureHandle,'Ydata',ax);
in
children_handle=get(axesHandle,'children')
set(children_handle,'Ydata',ax);
Questo, nell'ipotesi che lettura dei dati avvenga in modo corretto e che, quindi, in
ax ci siano dei dati "validi" da plottare (nella domanda non fai riferimento a probòlemi nell'acquisizione dei dati).
Hope this helps.