how to compare two consecutive values in a matrix
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
qing li
el 29 de Jul. de 2022
Comentada: qing li
el 31 de Jul. de 2022
deal all,
how to compare two consecutive values in a matrix called 'temp' row-wise, the rule and the expecting result is as the following:
if first value>=second value , then bit=1;
else if first value<second value, then bit=0;
Store the bit generated every time in a matrix ‘M’.
This step will generate a matrix ‘M’ (logical) of size same a temp.
say for instance let's say matrix 'temp' be temp=[1,2,2,1;3,4,4,3;5,6,6,5;7,8,8,7]
can anyone give me some hints, thx a lot !
0 comentarios
Respuesta aceptada
Voss
el 29 de Jul. de 2022
temp=[1,2,2,1;3,4,4,3;5,6,6,5;7,8,8,7]
In each row, you have one fewer comparisons than you have elements, so M is of size one less than temp.
M = logical(temp(:,1:end-1) >= temp(:,2:end))
Maybe you want to append a column of false values to M.
M(:,end+1) = false
Another way to do the same:
temp2 = [temp NaN(size(temp,1),1)];
M = logical(temp2(:,1:end-1) >= temp2(:,2:end))
5 comentarios
Voss
el 30 de Jul. de 2022
In that case, you can do it like this:
temp=[1,2,2,1;3,4,4,3;5,6,6,5;7,8,8,7]
% make a row vector of the elements in temp in the proper order for the comparison
temp_row = reshape(temp.',1,[]);
% add the first element to the end for comparing the last and first elements
temp_row(end+1) = temp(1);
disp(temp_row)
% perform the comparison
M = temp_row(1:end-1) >= temp_row(2:end)
% reshape the result back to the right size
M = reshape(M,size(temp,2),[]).'
Más respuestas (1)
Ver también
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!