[MATLAB] PROBLEMA GRAFICI

serbring
In pratica devo fare numerosi grafici in matlab, ciasciuno di esse contiene diverse serie di dati. Plotto ciascuna serie attraverso un ciclo for. Ad ogni ciclio devo cambiare il marcatore ed il colore dei punti. Allora ho pensato di mettere il tipo di marcatore ed il colore in un vettore di stringhe ed ogni volta che plotto una serie di dati, cambio l'indice di questo vettore. Non riesco a capire perchè il compilatore mi dà un errore su tutte le istruzioni in cui assegno il tipo di marcatore ed il colore al vettore di stringhe...In parole povere mi dà errore sulla seguente istruzione:


marcatore(1)='r:*'

mostrandomi il seguente messaggio d'errore:

??? In an assignment A( = B, the number of elements in A and B
must be the same.

Error in ==> E:\Documenti\stage\grafici matlab\correlazione.m
On line 1 ==> marcatore(1)='r:*'

cosa c'è di sbagliato in quello che sto facendo? Non mi sembra di assegnare alla variabile marcatore una stringa di dimensioni differenti. Che dà qualche problema i ':' nella stringa?
grazie

Risposte
Sk_Anonymous
Non sono del tutto sicuro ma puoi provare a fare così.Prepara un vettore di stringhe s tramite il
comando s=cell(1).Poi lo riempi con le stringhe adatte a rappresentare le linee che vuoi disegnare.
Per esempio,supponendo che siano solo 3 ,scrivi:
s={'-.r*','--mo',':bs'}
e stai attento agli apici e alle parentesi graffe !!! Poi quando nel for chiami le varie curve
metti nel comando plot direttamente char(s(i)) con i variabile del for : plot(X,Y,char(s(i))).
Vedi un po' se ti viene.
Ciao.

serbring
"manlio":
Non sono del tutto sicuro ma puoi provare a fare così.Prepara un vettore di stringhe s tramite il
comando s=cell(1).Poi lo riempi con le stringhe adatte a rappresentare le linee che vuoi disegnare.
Per esempio,supponendo che siano solo 3 ,scrivi:
s={'-.r*','--mo',':bs'}
e stai attento agli apici e alle parentesi graffe !!! Poi quando nel for chiami le varie curve
metti nel comando plot direttamente char(s(i)) con i variabile del for : plot(X,Y,char(s(i))).
Vedi un po' se ti viene.
Ciao.


grazie mille...come hai fatto tu funziona anche se non'ho capito il perchè con le celle funziona e con il vettore di stringhe no. Se io a posto delle parenti graffe, metto le quadre, mi prende solo il primo carattere di ciascuna stringa.
Senti un ultima domanda, quali sono i tipi di marcatori presenti i matlab ed i tipi di colore? Io ne ho trovati solo 8 colori e 4 marcatori, ma mi servirebbero quantomeno 12 colori...grazie

Sk_Anonymous
Le parentesi quadre servono a fare di più stringhe un'unica stringa,Per esempio se in matlab si scrive
s=['ab','cd','ef'] il risultato sarà s='abcdef' e quindi se si vuole s(2) si avrà s(2) ='b' e non 'cd' come ci
si aspetterebbe.
Quanto ai colori e al tipo di linee effettivamente è come dici tu ma ,per quel poco che conosco,non vedo rimedi.
Potresti utilizzare uno stesso tipo di linea, alternare i colori delle linee in modo da usarne solo 6 ed infine
adoperare 12 tipi di "marker" per rappresentare graficamente i punti. Se non ho visto male,sono 13 ...
Fammi sapere,ciao.

serbring
"manlio":
Le parentesi quadre servono a fare di più stringhe un'unica stringa,Per esempio se in matlab si scrive
s=['ab','cd','ef'] il risultato sarà s='abcdef' e quindi se si vuole s(2) si avrà s(2) ='b' e non 'cd' come ci
si aspetterebbe.
Quanto ai colori e al tipo di linee effettivamente é come dici tu ma ,per quel poco che conosco,non vedo rimedi.
Potresti utilizzare uno stesso tipo di linea, alternare i colori delle linee in modo da usarne solo 6 ed infine
adoperare 12 tipi di "marker" per rappresentare graficamente i punti. Se non ho visto male,sono 13 ...
Fammi sapere,ciao.


Ciao, Ecco ora ho capito come funzionano veramente le stringhe in matlab. Vengo dal C e lì le stringhe si adoperano in modo differente. I grafici che devo fare io contengono solo punti. In pratica sono riuscito a trovare 12 tipi di marker ed 8 colori. Se ci fossero 4 colori in più sarebbe l'ideale...Comunque grazie mille sei stato gentilissimo

serbring
Ciao, scusate se disturbo ancora, Come si fà a posizionare la legenda dove voglio io da comando? girando per guide sono riuscito a trovare solamente il modo per farlo con matlab 7.0, ma io ho il 6.1 senza guida in linea, e quel metodo sembra non funzionare. In pratica il metodo che io conosco è legend('serie 1','serie 2',’Location’,’Best’), ma in questo modo, lui aggiunge best e location come etichette della legenda... :(

serbring
ho bisogno di un'altra cosa, in pratica al di fianco del grafico sarebbe bello disegnare una tabella. Sapete come si può fare da comando?

serbring
UP!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.