# Comparing an array of cells in a matrix

2 visualizaciones (últimos 30 días)
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 comentariosMostrar NingunoOcultar Ninguno
Rik el 9 de Jul. de 2019
Comment posted as answer by Praveen:
What is the input Xintegra?
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 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 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
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.

### Community Treasure Hunt

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

Start Hunting!

Translated by