Comparing an array of cells in a matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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
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.
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 comentario
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.
Ver también
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!