Je suis complètement bloqué avec ceci: je commence avec un type de liste de fichiers plats que j'obtiens d'une déclaration SQL comme ceci et je veux le transformer en un tableau 4D.
SÉLECTION a1, a2, a3, a4, v DE la table A;
a1 a2 a3 a4 v
--------------
2 2 3 3 100
2 1 2 2 200
3 3 3 3 300
...
- a1 à a4 sont des identificateurs (entiers) d'une plage de (1 à 5), qui sont également les coordonnées du nouveau tableau 4D à remplir.
- v est une valeur (double) par exemple un résultat d'une mesure.
Mon objectif est maintenant de transformer cette liste en un tableau 4D de dimension (5,5,5,5) où chaque v est placé aux bonnes coordonnées.
Cela pourrait facilement être fait en utilisant une boucle for, cependant comme j'ai beaucoup de données, ce n'est pas vraiment réalisable.
Si je n'avais qu'une dimension, je ferais quelque chose comme ceci :
a1 = [2;5;7]; % Identifiants
v = [17;18;19]; % Valeurs
b1 = (1:10)'; % Plage d'identifiants
V = zeros(10,1); % Créer un vecteur de résultat avec les bonnes dimensions
idx = ismember(b1, a1); % Faire la recherche
V(idx) = v; % Insérer
Ma question: Comment puis-je faire cela pour le tableau 4D mentionné ci-dessus sans utiliser une boucle for. Y a-t-il une "façon MATLAB" de le faire?
Toute aide est grandement appréciée!
Merci, Janosch