How to find index of non-alternate matrix elements?

i have two matrices say,
clear; close all; clc;
A = [1 3 5 7 9 11 13]; % nx1 matrix
B = [2 4 6 8 10 12 14]; % mx1 matrix
C = [A,B];
C = C';
D = sort(C);
This gives me matrix 'D' with elements from both A and B alternately.
However, if my matrix changes a bit in between like
clear; close all; clc;
A = [1 3 7 9 11 13]; % nx1 matrix
B = [2 4 6 8 10 12 14]; % mx1 matrix
C = [A,B];
C = C';
D = sort(C);
Then my matrix D with not have continuous alternate values from both matrix.
How can i find the index of this discontinuity, each time when the value repeats?
The final matrix D should have continuously increasing values.

3 Commenti

madhan ravi
madhan ravi il 25 Dic 2018
Modificato: madhan ravi il 25 Dic 2018
upload your desired output , incase if you didn‘t notice both your codes are the same
Looks to me as if you should be considering
D = reshape([A;B], 1, []);
@Walter Roberson: except in the second example A and B have different numbers of elements.

Accedi per commentare.

 Risposta accettata

A = [1 3 7 9 11 13];
B = [2 4 6 8 10 12 14];
C = {A(:);B(:)};
M = [cell2mat(C),repelem([1;2],cellfun(@(x)numel(x),C))];
S = sortrows(M,1);
idx_out = find([false;diff(S(:,2))==0]);

1 Commento

thanks! Your suggetsion really worked for me.
Thnak you for putting effeorts!

Accedi per commentare.

Più risposte (0)

Categorie

Richiesto:

il 25 Dic 2018

Commentato:

il 26 Dic 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by