-
21/04/2009 - 20h25 lena1987 erreur MATLAB: "Subscripted assignment dimension mismatch"
Bonjour,
Afin de pouvoir utiliser certaines données expérimentales sous Matlab, je dois "découper" la liste de chiffres en plusieurs secteurs.
quelques infos...
J'ai appelé le nombre de secteurs: "partnum", le nombre de données: "maxnum", et k est le nombre de données par secteur.
Les données sont sous la forme d'une matrice avec 4 colonnes et autant de lignes qu'il y a de chiffres. Seule la colonne 4 m'interesse.
Je souhaiterais appeler le secteur 1: "partie1", le secteur 2: "partie2"...j'ai posé i le nombre d'itérations la quantité de secteurs nécéssaires est variable.
Lorsque je lance le programme, le message d'erreur suivant apparait: Subscripted assignment dimension mismatch
concernant la ligne: strcat('datapart',num2str(i))= data(1:k,4);
Ci dessous la totalité de mon programmemaxnum=1047966;
partnum=4;
k=maxnum/partnum;
data(:,:,1) = load('C:\Users\Desktop\fichier .txt');
for i = 1:partnum
if i==1
strcat('datapart',num2str(i))= data(1:k,4);
else
strcat('datapart',num2str(i))= data((i*k): ((i+1)*k),4);
end
end
Peut-être que quelqu'un sait résoudre ce petit problème ?!
Merci d'avance !
Léna
-
Poursuivez votre recherche
-
21/04/2009 - 21h25 lou_ibmix_xi
Re : erreur MATLAB: "Subscripted assignment dimension mismatch"
Salut,
Je ne comprends ce que tu essais de faire, le resultat de strcat est une chaîne de caractères, de dimension 1 x nb de car., est tu écrases le résultat de strcat par un vecteur k x 1...
Tu ne peux pas écraser le "résultat" d'une fonction sans passer par une variable. De plus quel intérêt de faire un strcat pour l'écraser juste après?
Tant qu'il y à de la vis, il y a du tourne-vis -
21/04/2009 - 21h37 lena1987
Re : erreur MATLAB: "Subscripted assignment dimension mismatch"
Hello !!
merci pour ta réponse,
Etant donné que je ne sais pas le nombre total de séries de données dont j'aurais besoin, j'aimerais que la première s'appelle datapart1, puis datapart2, datapart3.... datapartn, si n est le nombre maximum de séries.
C'est donc pour ca que j'essaie de coller "datapart" et le nombre d'itération "i" ensemble. Je ne veux pas écraser le strcat mais nommer la tranche de donnée par strcat.
J'espère que mon explication est plus compréhensible !
-
22/04/2009 - 09h26 lou_ibmix_xi
Re : erreur MATLAB: "Subscripted assignment dimension mismatch"
Ouille, attention, grosse confusion...
Tu peux créer une variable "nom" contenant une chaîne de caractères, "datapart48" par exemple et ce de plein de manière différente, quelques exemples: Code: nom = 'datapart48';
nom = strcat ('datapart', num2str(48));
nom = ['datapart', num2str(48)]; qui donnes toute le même résultat.
Si j'ai bien compris tu voudrais transformer une variable en nom de variable, là je t'avoue que je sais pas comment faire (regarde peut-être du côté de eval), mais surtout je ne vois pas trop l'intérêt... Pourquoi ne pas garder dans un tableau multi-dimensionnel? Ou si tes séries de données n'ont pas les même dimensions, utilises des cellules (fonction cell).
Tant qu'il y à de la vis, il y a du tourne-vis -
22/04/2009 - 10h16 lena1987
Re : erreur MATLAB: "Subscripted assignment dimension mismatch"
oki je vais essayer comme ça,
merci beaucoup,
| | |