Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

erreur MATLAB: "Subscripted assignment dimension mismatch"



  1. #1
    lena1987

    Red face 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

    -----

  2. #2
    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?

  3. #3
    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 !

  4. #4
    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).

  5. A voir en vidéo sur Futura
  6. #5
    lena1987

    Re : erreur MATLAB: "Subscripted assignment dimension mismatch"

    oki je vais essayer comme ça,
    merci beaucoup,

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2009, 17h46
  2. Réponses: 7
    Dernier message: 26/02/2009, 00h00
Découvrez nos comparatifs produits sur l'informatique et les technologies.