J'ai un ensemble de données DÉSÉQUILIBRÉ contenant cinq champs comme:Modification des valeurs dans une matrice dans Matlab
a_code b_code sector year value
1 2 15 1970 1000
2 3 16 1971 2900
3 2 15 1970 3900
Je veux créer une matrice 4 dimensions dans MATLAB pour le champ « valeur ». Donc, je veux avoir un champ de valeur dans une matrice telle que M(a_code,b_code,sector,year) = value
. J'ai 75 a_code
, 75 b_code
, 19 secteurs et 45 ans. Donc, une matrice NaN est (75,75,19,45).
Depuis mon jeu de données n'est pas équilibré (par exemple, je n'ai pas de valeur pour a_code = 3
, b_code = 1
, sector = 15
, year = 1970
), je n'ai pas de valeur pour chaque combinaison (a_code
, b_code
, secteur, année). Pour les valeurs indisponibles, je veux avoir NaN. Je sais comment créer une matrice quadridimensionnelle avec des valeurs NaN, mais comment remplacer ces valeurs NaN par celles de mon jeu de données?
Probablement je devrais écrire une boucle, mais je ne sais pas comment.
Fondamentalement, j'ai un ensemble de données incluant a_code b_code, secteur, année et valeurs. Mais le problème est que cet ensemble de données n'est pas équilibré, ce qui signifie que je n'ai pas de valeur pour chaque combinaison a, b, secteur et année. J'essaie donc de construire une matrice qui montrera à la fois les combinaisons disponibles et indisponibles (NaN) a, b, sectorielles et annuelles. – ozlem
@ozlem: D'abord en note de fond: dans ma réponse, le vecteur «m» est «compris» dans «l'ensemble de données», mais il devrait probablement être défini par l'utilisateur. Pour le sujet principal Je ne vois toujours pas de réels bénéfices à représenter vos données en 4D-array. Veuillez en dire plus sur le traitement ultérieur que vous envisagez de faire avec votre «ensemble de données»? Essentiellement, quels sont les avantages (supposés) de la représentation 4D-array par rapport à la représentation matricielle (2D-array)? – eat
Honnêtement, créer une matrice 4D était la première chose à laquelle je pouvais penser. Je suis sûr qu'il y a un meilleur moyen. Ce que je veux faire est de créer une matrice à partir du tableau ci-dessus comme M = [Na 1000 Na; Na Na Na; Na 3900 Na]. Bien sûr, ce n'est que pour le secteur = 15 et l'année = 1970. Je le ferai pour chaque année et chaque secteur. Donc, je pensais que la création d'une matrice 4D est la meilleure façon? – ozlem