Salve a tutti ragazzi, ho una domanda veloce per voi.
Ho un grafico realizzato con la funzione scatter (cioè un grafico a punti).
Come posso tracciare dei segmenti che uniscono alcuni di questi punti? (ovviamente non in modo manuale, mi servirebbe l'implementazione...)
[MATLAB] grafico in coordinate cartesiane
16 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
Se vuoi unire solo alcuni punti penso che la soluzione migliore sia sovrapporci un altro grafico sopra.
Cioè plotare il grafico con i segmenti nella stessa figura dello scatter.
Cioè plotare il grafico con i segmenti nella stessa figura dello scatter.
0
voti
Ciao, grazie della risposta. Nel tentativo di ricavare i punti che effettivamente mi servono per procedere come mi hai suggerito è sorto un nuovo problema che, forse banale, non riesco a superare. Riporto qui lo script:
Ho 12 vettori P1....P12. Per ciascuno di questi vettori devo eseguire una serie di operazioni al termine delle quali il vettore viene trasformato in una matrice. La dimensione delle matrici così ottenute non è tuttavia la stessa per ciascun vettore.
Il mio dubbio è come riuscire a sovrascrivere Pk al termine del corrispondente ciclo su k.
Ho pensato di utilizzare ancora una volta le stringhe assegnando al valore della stringa la matrice g (che è quella che devo portare fuori ad ogni ciclo di indice k) secondo la sintassi:
eval(strcat('P',int2str(k)))=g;
ma mi dà errore.
avete qualche suggerimento?
Ps. spero di essermi spiegato bene
Ho 12 vettori P1....P12. Per ciascuno di questi vettori devo eseguire una serie di operazioni al termine delle quali il vettore viene trasformato in una matrice. La dimensione delle matrici così ottenute non è tuttavia la stessa per ciascun vettore.
Il mio dubbio è come riuscire a sovrascrivere Pk al termine del corrispondente ciclo su k.
Ho pensato di utilizzare ancora una volta le stringhe assegnando al valore della stringa la matrice g (che è quella che devo portare fuori ad ogni ciclo di indice k) secondo la sintassi:
eval(strcat('P',int2str(k)))=g;
ma mi dà errore.
avete qualche suggerimento?
Ps. spero di essermi spiegato bene
1
voti
Gli script si allegano in formato testo (ASCII). Le bitmap sono praticamente inutili, o uno ricopia tutto a mano (troppo noioso e lungo) o deve usare un OCR (troppo macchinoso).
0
voti
La mia è una esternazione priva di utilità
, ma:
Nel testo del progamma, non c'è neppure un commento per aiutare il lettore.
Una volta,,,,programmazione in FORTRAN, consigliavano una riga di commento ogni 5 o 10 di istruzioni..
Nel testo del progamma, non c'è neppure un commento per aiutare il lettore.
Una volta,,,,programmazione in FORTRAN, consigliavano una riga di commento ogni 5 o 10 di istruzioni..

1
voti
Avevo un po di tempo così ho ricopiato tutto, sperando di aver copiato giusto:
Gli ultimi punti interrogativi che si vedono nell'immagine 2 non li ho ricopiati, sono ignorante in materia ma penso non servino a nulla.
PS. per la prossima volta quello che ti voleva dire
xyz è che per inserire il docice basta che lo selezioni tutto nell'editor con cui lo hai scritto, poi lo copi, vieni qui, pigi il tasto Code, e ti escono i tag, questi per intenderci:
e in mezzo ai 2 tag incolli tutto quello che hai copiato nel tuo editor, e il risultato è quello che si vede come l'ho fatto io sopra.

- Codice: Seleziona tutto
P1([1:3],1)=MM([1:3],1);
P1([1:3],1)=MM([1:3],2);
P1([1:3],1)=MM([1:3],3);
P1([1:3],1)=MM([1:3],4);
P1([1:3],1)=MM([1:3],5);
P1([1:3],1)=MM([1:3],6);
P1([1:3],1)=MM([1:3],7);
P1([1:3],1)=MM([1:3],8);
P1([1:3],1)=MM([1:3],9);
P1([1:3],1)=MM([1:3],10);
P1([1:3],1)=MM([1:3],11);
P1([1:3],1)=MM([1:3],12);
for k=1:12
v=strcat('P',int2str(k));
g=eval(v);
for j=1:12
if MM(1,k)==MM(1,j)
if MM(2,k)==MM(2,j)
if abs (MM(3,k)-MM(3,j))==1
K=MM([1:3],j);
g=[g,K];
end
else
if MM(3,k)==MM(3,j)
if abs (MM(2,k)-MM(2,j))==1
K=MM([1:3],j);
g=[g,k];
end
end
end
end
if abs(MM(1,k)-MM(1,j))==1
if MM(2,k)==MM(2,j)
if MM(3,k)==MM(3,j)
K=MM([1:3],j);
g=[g,k]
end
end
end
end
end
Gli ultimi punti interrogativi che si vedono nell'immagine 2 non li ho ricopiati, sono ignorante in materia ma penso non servino a nulla.
PS. per la prossima volta quello che ti voleva dire
- Codice: Seleziona tutto
[code][/code]
e in mezzo ai 2 tag incolli tutto quello che hai copiato nel tuo editor, e il risultato è quello che si vede come l'ho fatto io sopra.

Il futuro appartiene a coloro che credono nella bellezza dei propri sogni.
Formule LaTeX
Uso di LaTeX sul forum
⋮ƎlectroYou
Formule LaTeX
Uso di LaTeX sul forum
⋮ƎlectroYou
0
voti
Sono decisamente stupido, non dovevi perdere tempo a ricopiarlo.. sei stato gentilissimo...
Vi inserisco tutto lo script:
il mio problema è proprio alla fine... su ogni ciclo di k io ottengo una matrice che deve essere sovrascritta al vettore corrispondente Pk.. e non so proprio come fare... vorrei evitare di scrivere 12 for separati..
Vi inserisco tutto lo script:
- Codice: Seleziona tutto
clear all
clc
A=[0,1];
B=[-1,0,1];
C=[0,1];
gamma=1;
x=1;
for i=1:2
V(1)=A(i);
for j=1:3
V(2)=B(j);
for k=1:2
V(3)=C(k);
M1(:,x)=[V(1);V(2);V(3)];
M(:,x)=1/(3*(1+gamma))*[3+gamma+2*gamma*V(1)-V(2)-gamma*V(3);gamma-gamma*V(1)+2*V(2)-gamma*V(3);-3-2*gamma-gamma*V(1)-V(2)+2*gamma*V(3)];
x=x+1;
end
end
end
TB=2/3*[1 -1/2 -1/2; 0 sqrt(3)/2 -sqrt(3)/2];
for i=1:12
N(:,i)=TB*M(:,i);
X(1,i)=N(1,i);
Y(1,i)=N(2,i);
end
scatter(X,Y)
MM=[M1;M;N];
P1([1:3],1)=MM([1:3],1);
P2([1:3],1)=MM([1:3],2);
P3([1:3],1)=MM([1:3],3);
P4([1:3],1)=MM([1:3],4);
P5([1:3],1)=MM([1:3],5);
P6([1:3],1)=MM([1:3],6);
P7([1:3],1)=MM([1:3],7);
P8([1:3],1)=MM([1:3],8);
P9([1:3],1)=MM([1:3],9);
P10([1:3],1)=MM([1:3],10);
P11([1:3],1)=MM([1:3],11);
P12([1:3],1)=MM([1:3],12);
for k=1:12
v=strcat('P',int2str(k));
g=eval(v);
for j=1:12
if MM(1,k)==MM(1,j)
if MM(2,k)==MM(2,j)
if abs(MM(3,k)-MM(3,j))==1
K=MM([1:3],j);
g=[g,K];
end
else
if MM(3,k)==MM(3,j)
if abs(MM(2,k)-MM(2,j))==1
K=MM([1:3],j);
g=[g,K];
end
end
end
end
if abs(MM(1,k)-MM(1,j))==1
if MM(2,k)==MM(2,j)
if MM(3,k)==MM(3,j)
K=MM([1:3],j);
g=[g,K];
end
end
end
end
???
end
il mio problema è proprio alla fine... su ogni ciclo di k io ottengo una matrice che deve essere sovrascritta al vettore corrispondente Pk.. e non so proprio come fare... vorrei evitare di scrivere 12 for separati..
0
voti
Cerco pure di spiegarvi quello che ho fatto.
Ho tre variabili A,B,C che possono assumere i seguenti valori:
A->0,1
B->-1,0,1
C->0,1
Trovo tutti i possibili vettori colonna [A,B,C]' e li salvo nelle prime 3 righe della matrice MM.
Attraverso una data espressione matriciale (in cui compare la dipendenza da A,B,C) calcolo 12 nuovi vettori che salvo nelle righe 4-6 della stessa matrice MM.
Infine applico una trasformata trifase-bifase e ottengo 12 vettori a 2 componenti che salvo nelle righe 7-8 di MM e che plotto col comando scatter.
Di tutti i punti ottenuti, devo collegare con un segmento i punti i cui vettori corrispondenti nelle righe 1-3 hanno 2 componenti uguali e la differenza della componente "diversa" pari a 1 in valore assoluto.
Io vorrei ottenere così 12 matrici P1,...,P12 che presentino nella prima colonna il vettore che sto considerando e nelle altre tutti quelli da collegare.
Ho implementato la regola di collegamento dei punti e funziona se considero un solo vettore. Scrivendo un for più esterno non riesco però a fare sì che ciascuna matrice di interesse venga soprascritta al Pk corrispondente al termine di ciascun ciclo k.
Ho tre variabili A,B,C che possono assumere i seguenti valori:
A->0,1
B->-1,0,1
C->0,1
Trovo tutti i possibili vettori colonna [A,B,C]' e li salvo nelle prime 3 righe della matrice MM.
Attraverso una data espressione matriciale (in cui compare la dipendenza da A,B,C) calcolo 12 nuovi vettori che salvo nelle righe 4-6 della stessa matrice MM.
Infine applico una trasformata trifase-bifase e ottengo 12 vettori a 2 componenti che salvo nelle righe 7-8 di MM e che plotto col comando scatter.
Di tutti i punti ottenuti, devo collegare con un segmento i punti i cui vettori corrispondenti nelle righe 1-3 hanno 2 componenti uguali e la differenza della componente "diversa" pari a 1 in valore assoluto.
Io vorrei ottenere così 12 matrici P1,...,P12 che presentino nella prima colonna il vettore che sto considerando e nelle altre tutti quelli da collegare.
Ho implementato la regola di collegamento dei punti e funziona se considero un solo vettore. Scrivendo un for più esterno non riesco però a fare sì che ciascuna matrice di interesse venga soprascritta al Pk corrispondente al termine di ciascun ciclo k.
16 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Programmi applicativi: simulatori, CAD ed altro
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





) cicli for?


