re-indexing slices of a matrix
    3 views (last 30 days)
  
       Show older comments
    
Hi all,
I have a matrix A where its second column represents the index of each row. I want to replace these values so that they start from 1. I tried to do this using the code below, but clearly I'm not succeeding. 
mainidx = 4; %main indices
desiredidx = 5; %waht i want the indices to be
%the matrix
A = [1 4 
    4 4 
    3 4
    6 3
    3 3
    2 1
    3 1
    7 2 
    5 2
    9 2
    5 1
    4 1];
%reindexing
for i = 1:mainidx
    for j=1:desiredidx
        idx = A(:,2)==mainidx;
        A(A(:,2)==desiredidx) = mainidx;
        A(idx)  = desiredidx;
    end
end
I want this matrix to look like the following:
A = [1 1 
    4 1 
    3 1
    6 2
    3 2
    2 3
    3 3
    7 4 
    5 4
    9 4
    5 5
    4 5];
Any help would be appreicted.
0 Comments
Accepted Answer
  Voss
      
      
 on 10 Jul 2024
        A = [1 4 
    4 4 
    3 4
    6 3
    3 3
    2 1
    3 1
    7 2 
    5 2
    9 2
    5 1
    4 1];
A(:,2) = 1+cumsum([false; logical(diff(A(:,2)))]);
disp(A)
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
