Comparing an array of cells in a matrix

2 visualizaciones (últimos 30 días)
Lev Mihailov
Lev Mihailov el 9 de Jul. de 2019
Comentada: Rik el 9 de Jul. de 2019
Hello! I need to compare values ​​with each other in cell arrays
for redit = 1:length(xintegra)-1
if EE1{redit}-100>= EE1{redit+1};
E1{redit}=0;
else EE1{redit}+100 <= EE1{redit+1};
E1{redit}=EE1{redit};
end
end
You give an error "Index exceeds matrix dimensions."
Help me fix
  2 comentarios
Rik
Rik el 9 de Jul. de 2019
Comment posted as answer by Praveen:
What is the input Xintegra?
Rik
Rik el 9 de Jul. de 2019
Reply by Lev Mihailov:
the minimum value of my matrix = 11003, EE1 this is an indicator of where it is located.

Iniciar sesión para comentar.

Respuestas (1)

Roy Kadesh
Roy Kadesh el 9 de Jul. de 2019
If you want loop through all values of EE1, then you can use the code below.
for redit = 1:numel(EE1)-1
if EE1{redit}-100>= EE1{redit+1}
E1{redit}=0;
elseif EE1{redit}+100 <= EE1{redit+1} %did you mean elseif?
E1{redit}=EE1{redit};
end
end
If you want to catch the case where redit is larger than the numer of elements in EE1, you can fill in the code below.
for redit = 1:numel(xintegra)-1
if (redit+1)>numel(EE1)
%do something else
else
if EE1{redit}-100>= EE1{redit+1}
E1{redit}=0;
elseif EE1{redit}+100 <= EE1{redit+1} %did you mean elseif
E1{redit}=EE1{redit};
end
end
end
  1 comentario
Rik
Rik el 9 de Jul. de 2019
If there are indeed only numeric values inside that cell array, it is probably much faster to convert it to a double and use logical indexing to create the output.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by