Salve a tutti,
avrei bisogno di un consiglio in merito a quanto segue.
Ho un vettore es. a=[ 2 6 8 ] e un vettore b=[ 3 4 2 9 1 6 7 8 ] e in sostanza vorrei che nel vettore b venissero tolti gli elementi che sono nel vettore a, e magari sostituiti con NaN, ovvero ottenere: b=[3 4 NaN 9 1 NaN 7 NaN].
Volevo sapere se ci fosse una funzione che possa fare questo. Potrei scrivere una piccola funzione. Il problema è che le dimensioni dei due vettori cambiano sempre siccome sono all'interno di un ciclo for. Grazie a chiunque possa darmi una mano:)
confronto tra vettori MATLAB
5 messaggi
• Pagina 1 di 1
0
voti
0
voti
Usa la funzione setdiff.
Per esempio (non testato)
Per esempio (non testato)
- Codice: Seleziona tutto
[c,ib] = setdiff(b,a);
d = NaN(size(b));
d(ib) = c;
It's a sin to write
instead of
(Anonimo).
...'cos you know that
ain't
, right?
You won't get a sexy tan if you write
in lieu of
.
Take a log for a fireplace, but don't take
for
arithm.
instead of
(Anonimo)....'cos you know that
ain't
, right?You won't get a sexy tan if you write
in lieu of
.Take a log for a fireplace, but don't take
for
arithm.-

DirtyDeeds
55,9k 7 11 13 - G.Master EY

- Messaggi: 7012
- Iscritto il: 13 apr 2010, 16:13
- Località: Somewhere in nowhere
0
voti
Grazie, in effetti è la funzione che fa per me, non la conoscevo. L'unica cosa che mi lascia perplesso sono come vengono dati i valori in uscita alla funzione. es
restituisce:
ora se non ho capito male, setdiff(a,b) trova gli elementi di a che non sono contenuti in b, nell'esempio appunto 1 e 5, non capisco però come indice i=1 7. Mi sarei aspettato più un i=4 5 6 7 ovvero gli indici di a corrispondentia valori che non sono contenuti nel vettore b.
- Codice: Seleziona tutto
a = [3 6 2 1 5 1 1]; b = [2 4 6 3];
>> [C,i] = setdiff(a,b)
restituisce:
- Codice: Seleziona tutto
C= 1 5
i=1 7
ora se non ho capito male, setdiff(a,b) trova gli elementi di a che non sono contenuti in b, nell'esempio appunto 1 e 5, non capisco però come indice i=1 7. Mi sarei aspettato più un i=4 5 6 7 ovvero gli indici di a corrispondentia valori che non sono contenuti nel vettore b.
0
voti
Sei sicuro del vettore i che hai riportato? Con i valori dell'esempio dovresti avere
Uhm, sei sicuro dell'indice? A me sembra che dovrebbe essere i = [7 5].
Quelle funzioni trattano i vettori come insiemi, quindi, per esempio, [1 1] e [1 1 1 1 1] sono equivalenti al vettore [1]. Se hai bisogno di mantenere i valori ripetuti, bisogna trovare un'altra soluzione: non avendo matlab installato, però, non riesco a fare prove.
catta ha scritto:non capisco però come indice i=1 7
Uhm, sei sicuro dell'indice? A me sembra che dovrebbe essere i = [7 5].
catta ha scritto:Mi sarei aspettato più un i=4 5 6 7 ovvero gli indici di a corrispondentia valori che non sono contenuti nel vettore b.
Quelle funzioni trattano i vettori come insiemi, quindi, per esempio, [1 1] e [1 1 1 1 1] sono equivalenti al vettore [1]. Se hai bisogno di mantenere i valori ripetuti, bisogna trovare un'altra soluzione: non avendo matlab installato, però, non riesco a fare prove.
It's a sin to write
instead of
(Anonimo).
...'cos you know that
ain't
, right?
You won't get a sexy tan if you write
in lieu of
.
Take a log for a fireplace, but don't take
for
arithm.
instead of
(Anonimo)....'cos you know that
ain't
, right?You won't get a sexy tan if you write
in lieu of
.Take a log for a fireplace, but don't take
for
arithm.-

DirtyDeeds
55,9k 7 11 13 - G.Master EY

- Messaggi: 7012
- Iscritto il: 13 apr 2010, 16:13
- Località: Somewhere in nowhere
0
voti
si scusa mi son sbagliato , non so perché ho scritto 1 7 il risultato degli indici è 7 5
Mi è anche più chiaro il discorso che siano funzioni che trattano il vettore come insieme, viene spiegato il perché i valori ripetuti non siano considerati. grazie ancora, approfondirò comunque l'argomento!!
Mi è anche più chiaro il discorso che siano funzioni che trattano il vettore come insieme, viene spiegato il perché i valori ripetuti non siano considerati. grazie ancora, approfondirò comunque l'argomento!!
5 messaggi
• Pagina 1 di 1
Torna a Programmi applicativi: simulatori, CAD ed altro
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite

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)
