Ho due vettori, idx1
e idx2
e voglio ottenere i valori tra di loro. Se idx1
e idx2
erano numeri e non i vettori, avrei potuto farlo nel modo seguente:Vettorizzazione della nozione di due punti (:) - valori tra due vettori in MATLAB
idx1=1;
idx2=5;
values=idx1:idx2
% Result
% values =
%
% 1 2 3 4 5
Ma nel mio caso, idx1
e idx2
sono vettori di lunghezza variabile. Ad esempio, per lunghezza = 2:
idx1=[5,9];
idx2=[9 11];
Posso utilizzare l'operatore di due punti per ottenere direttamente i valori in mezzo? Questo è qualcosa di simile al seguente:
values = [5 6 7 8 9 9 10 11]
so che posso fare idx1(1):idx2(1)
e idx1(2):idx2(2)
, questo è, estrarre i valori per ogni colonna separatamente, in modo se non c'è altra soluzione, posso fare questo con un for-loop, ma forse Matlab può farlo più facilmente.
'values' non è possibile in MATLAB. Un 5-vettore verticalmente concatenato da un 3-vettore? – petrichor
Sì, hai ragione, mi dispiace. Ho intenzione di correggerlo. Non mi importa se i valori sono tutti nella stessa riga, ho solo bisogno di tutti i valori tra questi indici. – Digna
C'è un post di blog eccellente su questo argomento di Loren a Mathworks: [Vettorializzare la nozione di due punti (:)] (http://blogs.mathworks.com/loren/2008/10/13/vectorizing-the-notion- of-colon) – knedlsepp