precise selection in a for loop
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
Hello, I just created a for loop and this is correct, but now I would only select positions from 30 to 48 for each "essai" but I am not sur how to do that whithout matrix size problem...
for essai = 1:length (nb_essai)
% for essai = 1:length (nb_essai)
num_ess = [];
num_ess = find (num(:,24) == essai);
Val_CursX_ess = num(num_ess,6);
Val_CursY_ess = num(num_ess,7);
Val_Quest_ess = txt(num_ess,36);
Val_Indice_ess = txt(num_ess,40);
Val_Valid_ess = txt(num_ess,33);
Réponses (1)
Walter Roberson
le 17 Juil 2015
After
num_ess = find (num(:,24) == essai);
add
num_ess = num_ess(num_ess >= 30 & num_ess <= 48);
10 commentaires
Alexandre Williot
le 17 Juil 2015
Modifié(e) : Alexandre Williot
le 17 Juil 2015
Walter Roberson
le 18 Juil 2015
I do not understand that code.
What is class(Question_interet) ? Is it character array or is it cell array of string?
Why are you using those strange find() on strcmp() instead of using the two-output version of ismember() ?
[found, idx] = ismember('string', Cell_Array_Of_Strings)
Alexandre Williot
le 18 Juil 2015
Walter Roberson
le 18 Juil 2015
Please rewrite your code using ismember()
Also please note that there is no need to test
strcmp() == 1
The result of strcmp() is true or false directly so you can leave out the "== 1" such as
if strcmp(A,B)
or
find(strcmp(A,B))
Alexandre Williot
le 19 Juil 2015
Walter Roberson
le 19 Juil 2015
Yes, it probably is.
Alexandre Williot
le 19 Juil 2015
Walter Roberson
le 19 Juil 2015
Okay, so comment out that change of mine, rewrite the resulting version using ismember() and so on, and then uncomment the line and test the resulting code.
Alexandre Williot
le 19 Juil 2015
Alexandre Williot
le 19 Juil 2015
Cette question est clôturée.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!