How to compare matrix elements with their neighbors?
Mostra commenti meno recenti
Hi, I have a matrix A (50x1). I have to compare each element of matrix A with its two neighbors. The element of the matrices are organized in a circular way and the neighbors definition is as follows: Element "i" has two neighbors: element "i+1" and element "i-1", For instance element 2 has neighbors 1 and 3, element 50 has neighbors 49 and 1, element 1 has neighbors 50 and 2. If the value of element "i" from matrix A is smaller than value of element "i+1" and element "i-1" from matrix A,then I build another matrix B which element "i" is equal to element "i" from A matrix.
Any advice how to write this is very appreciated.
Risposta accettata
Più risposte (1)
A = randi(20, 50, 1); %demo matrix
%using simple indexing
tocopy = A < [A(2:end); A(1)] & A < [A(end); A(1:end-1)];
%using circshift
tocopy = A < circshift(A, 1) & A < circshift(A, -1);
%now copy the selected values
B = zeros(size(A)); %create B first
B(tocopy) = A(tocopy); %copy
Categorie
Scopri di più su Nearest Neighbors in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!