How to store consequtive numbers and vector jumps in different matrices?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
PANAGIOTIS GEORGIOS ILIOPOUOS
am 25 Mär. 2022
Bearbeitet: PANAGIOTIS GEORGIOS ILIOPOUOS
am 25 Mär. 2022
OK guys, lets say i have a matrix A=[1,2,3,6,7,8,11,12,13,14,15,17,18,19,30,31,32] , i want to locate the consequtive numbers and store them in matrices ,and also the the values that are not consequtive and store them in different matrices.So the output should be like:
A1=[1 2 3] B1=[3 6]
A2=[6 7 8 ] B2=[8 11]
A3 = [11 12 13 14 15 ] B3 = [15 17]
A4=[17 18 19 ] B4=[19 30]
A5=[ 30 31 32]
Any idea how can i solve this?
0 Kommentare
Akzeptierte Antwort
Riccardo Scorretti
am 25 Mär. 2022
Bearbeitet: Riccardo Scorretti
am 25 Mär. 2022
Hi. You can try this:
A = [1,2,3,6,7,8,11,12,13,14,15,17,18,19,30,31,32];
C = {} ; NC = {}; % Consecutive / Non Consecutive vectors
ind = find(diff(A)~=1);
for n = 1 : numel(ind), NC{n} = A(ind(n):ind(n)+1) ; end
ind = [1 ind+1 numel(A)+1];
for n = 1 : numel(ind)-1, C{n} = A(ind(n):ind(n+1)-1) ; end
C
NC
4 Kommentare
Riccardo Scorretti
am 25 Mär. 2022
You mean, like that?
A = [1,2,3,6,7,8,11,12,13,14,15,17,18,19,30,31,32];
C = {} ; NC = {}; % Consecutive / Non Consecutive vectors
figure
ind = find(diff(A)~=1);
for n = 1 : numel(ind)
NC{n} = A(ind(n):ind(n)+1);
plot(ind(n):ind(n)+1, NC{n}, 'r') ; hold on;
end
ind = [1 ind+1 numel(A)+1];
for n = 1 : numel(ind)-1
C{n} = A(ind(n):ind(n+1)-1);
plot(ind(n):ind(n+1)-1, C{n}, 'b');
end
C
NC
PANAGIOTIS GEORGIOS ILIOPOUOS
am 25 Mär. 2022
Bearbeitet: PANAGIOTIS GEORGIOS ILIOPOUOS
am 25 Mär. 2022
Weitere Antworten (1)
David Hill
am 25 Mär. 2022
A=[1,2,3,6,7,8,11,12,13,14,15,17,18,19,30,31,32];
a=diff(A);
n=num2str(a==1);nn=num2str(a~=1);
n=n(n~=' ');nn=nn(nn~=' ');
[s,e]=regexp(n,'[1]+');
[ss,ee]=regexp(nn,'[1]+');
for k=1:length(s)
AA{k}=A(s(k):e(k)+1);
end
for k=1:length(ss)
BB{k}=A(ss(k):ee(k)+1);
end
2 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
