How to store indices of for loop in cell array after satisfying a condition

1 visualización (últimos 30 días)
Hi Mathworkers,
I am having problem in storing indices (That will serve as necessary data in my purpose)of for loops in a cell array after satisfying a condition. Here, there is a draft of the code.
for i=8:110
for j=34:110
for k=95:110
EE=myfunction(i,j,k); %% Function may be any
if EE<=5
(#######)
end
end
end
end
#### at this point, I need the cell array which stores the indices i,j,k for whom the condition (EE<=5) is satisfied.
output may be something like this,
9,50,99
9,61,103
..........
10,34,96
10,35,95 etc..

Respuesta aceptada

KALYAN ACHARJYA
KALYAN ACHARJYA el 3 de Mayo de 2019
Editada: KALYAN ACHARJYA el 3 de Mayo de 2019
l=1;
m={};
for......
if EE<=5
(#######)
m{l}=[i,j,k];
l=l+1;
end
Check this way:
>> m={}
m=
{}
>> m{1}=[1,2,3];
>> m{2}=[2,2,7];
>> m
m=
[1x3 double] [1x3 double]
>>
You can acess any cell array, like
>> m{2}
ans =
2 2 7
One suggestion: If possible reduce the nesting of loops to make the code more efficeint.
  2 comentarios
Anupam  Saikia
Anupam Saikia el 3 de Mayo de 2019
Thanks Mr. Kalayan Acharya. Can a called function be used in arrayfun?
KALYAN ACHARJYA
KALYAN ACHARJYA el 3 de Mayo de 2019
Editada: KALYAN ACHARJYA el 3 de Mayo de 2019
Adaroni Saikia deb, you can do that.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by