precise selection in a for loop
Info
This question is closed. Reopen it to edit or answer.
Show older comments
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);
Answers (1)
Walter Roberson
on 17 Jul 2015
After
num_ess = find (num(:,24) == essai);
add
num_ess = num_ess(num_ess >= 30 & num_ess <= 48);
10 Comments
Alexandre Williot
on 17 Jul 2015
Edited: Alexandre Williot
on 17 Jul 2015
Walter Roberson
on 18 Jul 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
on 18 Jul 2015
Walter Roberson
on 18 Jul 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
on 19 Jul 2015
Walter Roberson
on 19 Jul 2015
Yes, it probably is.
Alexandre Williot
on 19 Jul 2015
Walter Roberson
on 19 Jul 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
on 19 Jul 2015
Alexandre Williot
on 19 Jul 2015
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!