Bonjour à tous,

Je suis en train d'écrire un petit script pour rendre plus rapide le traitement de données de plusieurs fichiers texte

Jusqu'à là, j'ai plusieurs matrices avec mes données et je veux tracer les courbes qui vont bien. Pour cela je dois utiliser la fonction loglog(Y). Comme j'ai une bonne dizaine de matrices différentes, j'ai voulu faire en sorte de créer la variable "Y" en concaténant les noms des matrices comme je voulais puis juste appeler ma variable string dans la fonction loglog.

Pour être plus clair, mes matrices ce nomme comme cela : M_1i0j avec i et j deux variables avec i qui va de 3 à 9 de deux en deux et j de 2 à 3 (pour l'instant ). Je veux tracer la colonne 2 et 3 en fonction de la 1.

Mon but est donc de créer une variable String et l'insérer dans la fonction loglog comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
loglog(M_1301(:,1),M_1301(:,2),'gx',M_1302(:,1),M_1302(:,2),'gx',M_1303(:,1),M_1303(:,2),'gx',M_1501(:,1),M_1501(:,2),'bo',M_1502(:,1),M_1502(:,2),'bo',M_1503(:,1),M_1503(:,2),'bo',M_1701(:,1),M_1701(:,2),'c*',M_1702(:,1),M_1702(:,2),'c*',M_1703(:,1),M_1703(:,2),'c*',M_1901(:,1),M_1901(:,2),'rx',M_1902(:,1),M_1902(:,2),'rx',M_1903(:,1),M_1903(:,2),'rx');
j'ai donc le code

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
22
23
24
25
26
27
 
i = 3;
j = 1;
strvisco = '';
strgprime = '';
strgseconde = '';
s = '''gx''';% selon le nombre de courbe vous pouvez rajouter des marqueurs et des else if.
 
for i = 3:2:9
    if i == 5
        s = '''bo''';
    elseif i == 7
        s = '''c*''';
    elseif i == 9
        s = '''rx''';
    end
    is=num2str(i);
    for j = 1:3
        js=num2str(j);
        strvisco = strcat(strvisco,'M_1',is,'0',js,'(:,1),M_1',is,'0',js,'(:,2),',s,',');
        strgprime = strcat(strgprime,'M_1',is,'0',js,'(:,1),M_1',is,'0',js,'(:,3),',s,',');
        strgseconde = strcat(strgseconde,'M_1',is,'0',js,'(:,1),M_1',is,'0',js,'(:,4),',s,',');
    end
end
strvisco=strvisco(1:end-1);
strgprime=strgprime(1:end-1);
strgseconde=strgseconde(1:end-1);
Ce qui me permet bien d'obtenir les variables comme il faut.

Mais quand je compile Matlab me sort une erreur :
Error using loglog
Invalid first data argument.

Error in courbesv2 (line 35)
Visco =loglog(strvisco); %étrangement on ne peux pas rentrer un string pour les valeurs
du loglog.
Ma Question est donc la suivant (c'est mon premier poste alors je fournis un max d'info) : Est-il possible d'utiliser une variable string avec la fonction loglog ? Si oui, comment faire ?

Merci d'avance à tous