cutting a matrix A into 3 pieces with respect to matrix B
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Walter Roberson
il 17 Lug 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.
Risposta accettata
Walter Roberson
il 17 Lug 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!