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 :
j'ai donc le code
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');
Ce qui me permet bien d'obtenir les variables comme il faut.
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);
Mais quand je compile Matlab me sort une erreur :
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 ?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.
Merci d'avance à tous
Partager