Replacing sequences in matrix
1 view (last 30 days)
Show older comments
Hello everybody,
I have a matirx and I want to change the order of matrix in accordance with first column.
First column is the index start from 4 to 13 and others an offset at 100 intervals from 4 to 13.
Now it is from 4...13,104..113.. to 913. I would like to make it from 904...913,804..814.. to 13.
Is there a way to make the matrix in such an order.
clear; close all; clc;
results = [4,5,6,7,8,9,10,11,12,13, ...
104,105,106,107,108,109,110,111,112,113, ...
204,205,206,207,208,209,210,211,212,213, ...
304,305,306,307,308,309,310,311,312,313, ...
404,405,406,407,408,409,410,411,412,413, ...
504,505,506,507,508,509,510,511,512,513, ...
604,605,606,607,608,609,610,611,612,613, ...
704,705,706,707,708,709,710,711,712,713, ...
804,805,806,807,808,809,810,811,812,813, ...
904,905,906,907,908,909,910,911,912,913; ...
16 79 31 53 17 60 26 65 69 75 45 8 23 91 15 83 54 100 8 44 11 96 0 77 82 87 8 40 26 80 43 91 18 26 15 14 87 58 55 14 85 62 35 51 40 8 24 12 18 24 42 5 90 94 49 49 34 90 37 11 78 39 24 40 10 13 94 96 58 6 23 35 82 2 4 17 65 73 65 45 55 30 74 19 69 18 37 63 78 8 93 78 49 44 45 31 51 51 82 79];
results = results';
0 Comments
Accepted Answer
Stephen23
on 15 May 2023
A = [4,5,6,7,8,9,10,11,12,13; 104,105,106,107,108,109,110,111,112,113; 204,205,206,207,208,209,210,211,212,213; 304,305,306,307,308,309,310,311,312,313; 404,405,406,407,408,409,410,411,412,413; 504,505,506,507,508,509,510,511,512,513; 604,605,606,607,608,609,610,611,612,613; 704,705,706,707,708,709,710,711,712,713; 804,805,806,807,808,809,810,811,812,813; 904,905,906,907,908,909,910,911,912,913]
B = sortrows(A,-1)
2 Comments
Stephen23
on 15 May 2023
Edited: Stephen23
on 15 May 2023
"It is possible to make the order including with the 2nd column together?"
Perhaps this does what you want:
A = [4,5,6,7,8,9,10,11,12,13,104,105,106,107,108,109,110,111,112,113,204,205,206,207,208,209,210,211,212,213,304,305,306,307,308,309,310,311,312,313,404,405,406,407,408,409,410,411,412,413,504,505,506,507,508,509,510,511,512,513,604,605,606,607,608,609,610,611,612,613,704,705,706,707,708,709,710,711,712,713,804,805,806,807,808,809,810,811,812,813,904,905,906,907,908,909,910,911,912,913;16,79,31,53,17,60,26,65,69,75,45,8,23,91,15,83,54,100,8,44,11,96,0,77,82,87,8,40,26,80,43,91,18,26,15,14,87,58,55,14,85,62,35,51,40,8,24,12,18,24,42,5,90,94,49,49,34,90,37,11,78,39,24,40,10,13,94,96,58,6,23,35,82,2,4,17,65,73,65,45,55,30,74,19,69,18,37,63,78,8,93,78,49,44,45,31,51,51,82,79].'
B = reshape(sortrows(reshape(A,10,20),-1),100,2)
More Answers (2)
Shaik
on 15 May 2023
Hi Smithy,
Can you check this once, hope it helps
clear; close all; clc;
results = [4,5,6,7,8,9,10,11,12,13, ...
104,105,106,107,108,109,110,111,112,113, ...
204,205,206,207,208,209,210,211,212,213, ...
304,305,306,307,308,309,310,311,312,313, ...
404,405,406,407,408,409,410,411,412,413, ...
504,505,506,507,508,509,510,511,512,513, ...
604,605,606,607,608,609,610,611,612,613, ...
704,705,706,707,708,709,710,711,712,713, ...
804,805,806,807,808,809,810,811,812,813, ...
904,905,906,907,908,909,910,911,912,913; ...
16 79 31 53 17 60 26 65 69 75 45 8 23 91 15 83 54 100 8 44 11 96 0 77 82 87 8 40 26 80 43 91 18 26 15 14 87 58 55 14 85 62 35 51 40 8 24 12 18 24 42 5 90 94 49 49 34 90 37 11 78 39 24 40 10 13 94 96 58 6 23 35 82 2 4 17 65 73 65 45 55 30 74 19 69 18 37 63 78 8 93 78 49 44 45 31 51 51 82 79];
results = results';
% Extract the first column
first_column = results(:, 1);
% Sort the matrix based on the first column
sorted_results = sortrows(results, 1);
% Display the sorted matrix
disp(sorted_results);
2 Comments
Shaik
on 15 May 2023
Certainly! To reorder the matrix as you specified, you can use the following code:
clear; close all; clc;
results = [4,5,6,7,8,9,10,11,12,13, ...
104,105,106,107,108,109,110,111,112,113, ...
204,205,206,207,208,209,210,211,212,213, ...
304,305,306,307,308,309,310,311,312,313, ...
404,405,406,407,408,409,410,411,412,413, ...
504,505,506,507,508,509,510,511,512,513, ...
604,605,606,607,608,609,610,611,612,613, ...
704,705,706,707,708,709,710,711,712,713, ...
804,805,806,807,808,809,810,811,812,813, ...
904,905,906,907,908,909,910,911,912,913; ...
16 79 31 53 17 60 26 65 69 75 45 8 23 91 15 83 54 100 8 44 11 96 0 77 82 87 8 40 26 80 43 91 18 26 15 14 87 58 55 14 85 62 35 51 40 8 24 12 18 24 42 5 90 94 49 49 34 90 37 11 78 39 24 40 10 13 94 96 58 6 23 35 82 2 4 17 65 73 65 45 55 30 74 19 69 18 37 63 78 8 93 78 49 44 45 31 51 51 82 79];
results = results';
% Extract the first column
first_column = results(:, 1);
% Calculate the number of blocks
num_blocks = numel(first_column) / 10;
% Reshape the matrix into blocks of 10 rows
block_matrix = reshape(results, 10, []).';
% Create an array for the desired order of blocks
block_order = [num_blocks:-1:1];
% Rearrange the blocks based on the desired order
rearranged_matrix = block_matrix(block_order, :);
% Flatten the rearranged matrix back into a single column matrix
rearranged_results = rearranged_matrix(:);
% Display the rearranged matrix
disp(rearranged_results);
VBBV
on 15 May 2023
Edited: VBBV
on 15 May 2023
clear; close all; clc;
results = [4 5 6 7 8,9 10 11,12,13, ...
104,105,106,107,108,109,110,111,112,113, ...
204,205,206,207,208,209,210,211,212,213, ...
304,305,306,307,308,309,310,311,312,313, ...
404,405,406,407,408,409,410,411,412,413, ...
504,505,506,507,508,509,510,511,512,513, ...
604,605,606,607,608,609,610,611,612,613, ...
704,705,706,707,708,709,710,711,712,713, ...
804,805,806,807,808,809,810,811,812,813, ...
904,905,906,907,908,909,910,911,912,913, ...
16 79 31 53 17 60 26 65 69 75 45 8 23 91 15 83 54 100 8 44 11 96 0 77 82 87 8 40 26 80 43 91 18 26 15 14 87 58 55 14 85 62 35 51 40 8 24 12 18 24 42 5 90 94 49 49 34 90 37 11 78 39 24 40 10 13 94 96 58 6 23 35 82 2 4 17 65 73 65 45 55 30 74 19 69 18 37 63 78 8 93 78 49 44 45 31 51 51 82 79]
results = fliplr(reshape(sort(results.','descend'),10,[]).')
2 Comments
VBBV
on 15 May 2023
Do you mean like this ?
clear; close all; clc;
results = [4 5 6 7 8,9 10 11,12,13, ...
104,105,106,107,108,109,110,111,112,113, ...
204,205,206,207,208,209,210,211,212,213, ...
304,305,306,307,308,309,310,311,312,313, ...
404,405,406,407,408,409,410,411,412,413, ...
504,505,506,507,508,509,510,511,512,513, ...
604,605,606,607,608,609,610,611,612,613, ...
704,705,706,707,708,709,710,711,712,713, ...
804,805,806,807,808,809,810,811,812,813, ...
904,905,906,907,908,909,910,911,912,913, ...
16 79 31 53 17 60 26 65 69 75 45 8 23 91 15 83 54 100 8 44 11 96 0 77 82 87 8 40 26 80 43 91 18 26 15 14 87 58 55 14 85 62 35 51 40 8 24 12 18 24 42 5 90 94 49 49 34 90 37 11 78 39 24 40 10 13 94 96 58 6 23 35 82 2 4 17 65 73 65 45 55 30 74 19 69 18 37 63 78 8 93 78 49 44 45 31 51 51 82 79]
results = fliplr(reshape(sort(results.','descend'),10,[]).')
%
results = reshape(results.',[],2)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!