Bonjour,
?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 > size(Biomass_moy) 360 218 326 >> Biomass_moy = permute(Biomass_moy, [3 2 1]); >> size(Biomass_moy) 360 218 326
Bonjour,
?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 > size(Biomass_moy) 360 218 326 >> Biomass_moy = permute(Biomass_moy, [3 2 1]); >> size(Biomass_moy) 360 218 326
Salut,
Haha, tu as besoin d'une pause toi !
permute change les dimension de tes matrices.
D'après le premier size, ton système est à 1 dimension... donc les dimensions 2, 3 etc.... bah il n'y en a pas.
Donc, si tu permutes les dimensions 3, 2 et 1, tu vas déplacer ton vecteur dans une autre dimension, mais toujours à une seule dimension.
Or size te renvoies simplement la longueur de ton vecteur si tu n'as pas de longueur dans les autres dimensions.
Donc tout va bien :-)
Cordialement,
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
Ha non non pas du tout, il y a bien un espace entre les trois dimensions qui sont la première 360, la deuxième 218 et enfin 326
mais bon, d'accord pour la pause quand même, je fume!
Quelle version de MATLAB utilises-tu ?
Que renvoi ceci ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part whos Biomass_moy
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 >> Biomass_grand = nc{'Biomass_grand'}; >> size(Biomass_grand) 360 218 326 >> Biomass_grand = permute(Biomass_grand, [3 2 1]); >> size(Biomass_grand) 360 218 326 >> whos Biomass_grand Name Size Bytes Class Attributes Biomass_grand 360x218x326 7606 ncvar >> version ans = 7.9.0.529 (R2009b)
Je précise que la même opération fonctionne sur d'autre variables 'ncvar'
Donc on ne peut pas vraiment parler d'un bug de la fonction permute car les variables ncvar ne sont pas des variables propres à MATLAB mais à une toolbox externe (NetCDF)
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Ah, bah hier soir, j'étais persuadé qu'il n'y avait pas d'espace...
Effectivement, si la structure sur laquelle tu appliques ta fonction n'est pas une table d'array, ce que ça fait... bah je ne sais pas trop :/ bien vu le "whos"
C'est quoi, ces "ncvar" ? Ils sortent d'où ? Il faut que tu vois la doc associée, car ils doivent avoir un fonctionnement propre.
C'est bizarre que tu n'aies pas eu d'erreur d'ailleurs...
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
Si la classe ncvar ne surcharge pas la méthode permute, il s'agit surement d'un simple struct-array à 1 élément (l'élément étant ta structure). Donc c'est comme si tu faisais
Les trois dimensions que tu inverses sont de taille 1, donc aucun changement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part permute(1,[3 2 1])
Ce n'est pas la structure qu'il faut permuter, mais son attribut data ou value (ou un autre nom, faut se référer à la doc de ncvar)
Bien vu !
Je pense que VV33D a raison... c'est un peu complexe mais en gros, ce que t'affiches ton paramètre, c'est ce fameux attribut "data" ou "value", et non pas le "ncvar" tel quel...
Et quand tu appliques "size" sur ce même paramètre, ça ne fait pas le size du paramètre lui-même, mais le size de ce fameux attribut "data" ou "value"...
Tu as un lien vers la doc de ce ncvar, stp?
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
D'ailleurs, si tel est le cas, on devrait avoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 size(Biomass_grand) % surchargé -> [360 218 326] builtin('size',Biomass_grand) % struct-array -> [1,1]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager