cutting a matrix A into 3 pieces with respect to matrix B
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
here we have :
A=[1 2 3 14 15 16 7 8]
B=[1 2 3]
we know location of B is over 14 15 16 of matrix A.
we need to get 3 different matrix as below:
c=[1 2 3]
d=[14 15 16]
e=[7 8]
whar are the commands? many thanks in advance
13 commentaires
Walter Roberson
le 17 Juil 2015
Is it known that those entries in B are bit-for-bit copies of the entries in A? Such as if A was indexed to produce B? Because when two floating point values are computed by even very very slightly different code, the results will not necessarily be equal due to floating point round-off. If the entries are not bit-for-bit copies then you will need to compare with a tolerance rather than compare for equality.
Réponse acceptée
Walter Roberson
le 17 Juil 2015
[tf, idx] = ismember(B, A, 'rows');
minidx = min(idx);
maxidx = max(idx);
c = A(1:minidx-1,:);
d = A(minidx:maxidx,:);
e = A(maxidx+1:end, :);
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!