Ho provato a riportare i dati in un file di testo ("RL.txt") ed il codice inserito nella domanda ed ho correttamente ottenuto una curva in un grafico "3D".
La curva ottenuta è visualizzata nella prima immagine in calce.
ho quindi aggiunto al codice originale alcune istruzioni per, nell'ordine:
[*] visualizzazione griglia
[*] modifica del punto di vista. La variazione del punto di vista si può effettuare sia via codice tramite la funzione "view", sia manualmente cliccando sull'icona "Rotate 3D" presente nella "Figure toolbar" della "figure" (accessibile, se non visualizzata di default, tramite la voce di menu "View").
[*] label degli assi
[*] modifica del valore minimo dell'asse "Z"
[*] definizione dell'"data aspect ratio" (istruzione commentata)
queste istruzioni hanno il solo effetto di rendere il grafico "più chiaro", ma non influiscono in alcun modo sui dati di input e sul comportamento della funzione "plot3".
C'è da notare che i valori della terza colonna (i quali vengono definiti come ordinate del grafico) sono di 3 ordini di grandezza inferiori a quelle ascisse e dell'asse "Z".
Se si setta il "data aspect ratio" del grafico in modo che le scale dei valori sui tre assi siano le stesse (istruzione 'daspect([1 1 1])') si ottiene l'effetto che l'asse Y sembra "scomparire", dando l'impressione che si tratti di un grafico "2D" (la cosa si può verificare "scommentando" l'istruzione nello script riportato in basso).
La curva ottenuta è riprodotta nella seconda immagine in calce.
Una ulteriore aggiunta al codice originale, inserisce nel grafico della curva delle righe verticali, una per ogni punto per "dare l'idea" dell'altezza.
La curva è riprodotta nella terza immagine in calce.
In conclusione, come atteso, utilizzando i dati memorizzati all'interno del file "RL.txt", la funzione "plot3" genera regolarmente una curva nello spazio "3D".
Lo script è riportato di seguito.
%
% Codice originale
%
load RL.txt
a=RL;
f=a(:,1);
R=a(:,2);
L=a(:,3);
plot3(R,L,f)
%
% Codice aggiunto:
% visualizzazione griglia
% modifica del punto di vista
% label degli assi
% modifica del valore minimo dell'asse "Z"
% definizione dell'"data aspect ratio" (istruzione commentata)
%
grid on
view([-70 10])
xlabel('Asse X ==> R=a(:,2)')
ylabel('Asse Y ==> L=a(:,3)')
zlabel('Asse Z ==> f=a(:,1)')
z_lim=get(gca,'zlim');
zlim([0 z_lim(2)]);
% daspect([1 1 1]);
%
% Codice aggiunto per creare un nuovo grafico
%
figure
%
% Plot della curva originale
%
plot3(R,L,f,'linewidth',2)
hold on
%
% Plot di righe verticali per "dare l'idea della terza dimensione"
%
for i=1:length(R)
plot3([R(i) R(i)],[L(i) L(i)],[0 f(i)],'r');
end
%
% Come per il grafico precedente:
% visualizzazione griglia
% modifica del punto di vista
% label degli assi
% modifca del valoe minimo dell'asse "Z"
% definizione dell'"data aspect ratio" (istruzione commentata)
%
grid on
xlabel('Asse X ==> R=a(:,2)')
ylabel('Asse Y ==> L=a(:,3)')
zlabel('Asse Z ==> f=a(:,1)')
z_lim=get(gca,'zlim');
zlim([0 z_lim(2)]);
view([-70 10])
Hope this helps.
Allegati: