permutare gli indici di un array N-dimensioni

Discussioni generali sulla programmazione in LabVIEW, domande, problemi e soluzioni.

Moderatore: ILVG mod

  • Advertisement

permutare gli indici di un array N-dimensioni

Messaggioda lion5877 » mar giu 26, 2018 10:25 am

Buongiorno a tutti,

sto lavorando con un array a 4 dimensioni, la più esterna è A, fino alla più interna D -> (A B C D). Vorrei modificare questo ordine ed ottenere sempre un array 4 dimensioni, ma ordinate ad esempio (A B D C). Non riesco a capire se in LV è possibile farlo.
In matlab la funzione da utilizzare è "permute" (https://it.mathworks.com/help/control/ref/permute.html).
Ora a me andrebbe bene anche utilizzare MathScript, ma per quanto ho visto non accetta in ingresso Array N-Dimensioni.

Qualcuno può aiutarmi?
grazie
D.
lion5877
Nuovo Utente
Nuovo Utente
 
Messaggi: 4
Iscritto il: mer apr 08, 2009 2:39 pm

Re: permutare gli indici di un array N-dimensioni

Messaggioda aris » ven giu 29, 2018 8:09 am

Certo che è possibile.
ad esempio, come in allegato, fai un index degli indici che vuoi spostare e li ricomponi in un secondo array con l'ordine che vuoi.
Altra strada può essere un delete from array ed un successivo insert into.

Aris
Allegati
esempio.vi
(8.4 KiB) Scaricato 52 volte
E' sempre colpa di una massa.....e se non è quella è un if!
Avatar utente
aris
Super Utente ++
Super Utente ++
 
Messaggi: 643
Iscritto il: ven lug 30, 2004 10:49 am
Località: Medolla -MO-

Re: permutare gli indici di un array N-dimensioni

Messaggioda paracarro » ven giu 29, 2018 11:31 am

lion5877 ha scritto:Buongiorno a tutti,

sto lavorando con un array a 4 dimensioni, la più esterna è A, fino alla più interna D -> (A B C D). Vorrei modificare questo ordine ed ottenere sempre un array 4 dimensioni, ma ordinate ad esempio (A B D C). Non riesco a capire se in LV è possibile farlo.
In matlab la funzione da utilizzare è "permute" (https://it.mathworks.com/help/control/ref/permute.html).
Ora a me andrebbe bene anche utilizzare MathScript, ma per quanto ho visto non accetta in ingresso Array N-Dimensioni.

Qualcuno può aiutarmi?
grazie
D.


Questa è la mia soluzione
MultiIndexMatrix.vi
LV2010
(10.47 KiB) Scaricato 42 volte


Penso che questo sia un NON problema perchè non riesco a capire la tua esigenza fino in fondo.
Pur mantenendo i dati in memoria "sbagliati" potresti incrociare gli indici ed accedere in modo corretto all'informazione richiesta.

Nel caso tu acceda ai valori della tua matrice sempre cella x cella, potresti frappore fra gli indici con cui accedi alla matrice ed il VI "Index Array" un VI tipo il seguente
4IdxExchange.vi
LV2010
(10.21 KiB) Scaricato 38 volte

In questo caso, se ti venisse in mente di scambiare altri indici, ti basterebbe modificare questo sub_VI per avere un accesso corretto in tutti i punti dove viene richiamato.

bye
Mai dire Mai
paracarro
Moderatore
 
Messaggi: 875
Iscritto il: lun ago 18, 2003 3:04 pm
Località: MILANO



  • Advertisement

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron

Pannello di Controllo Utente

Login

Advertisement

Chi c’è in linea

In totale c’è 1 utente connesso :: 0 iscritti, 0 nascosti e 1 ospite (basato sugli utenti attivi negli ultimi 5 minuti)
Record di utenti connessi: 119 registrato il dom mar 31, 2013 11:39 pm

Visitano il forum: Nessuno e 1 ospite