2016-08-10 2 views
-3

Ich habe diese MatrixErweiterte Suche und entfernen in speziellen Matrix

X= [2 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 250; 
    3 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 250; 
    2 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 250; 
    3 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 250; 
    4 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 250; 
    3 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 250; 
    2 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 250; 
    4 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 250; 
    3 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 250; 
    3 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 400] 

ich drei verschiedene Sequenz Dinge in dieser Matrix tun müssen:

1- Suche in dieser Matrix in der Reihenfolge 1 1 0 0 0 und schreibe jene Zeilen, die diese Eigenschaft haben, in eine neue Matrix (wie Zeile 1).

2- Verwenden Sie die Matrix, die im ersten Schritt generiert wird, und entfernen Sie daraus die Zeilen, die die gleiche Zahl in den gleichen Ziffern haben (wie Zeile 1,3,7), aber behalten Sie nur eine Zeile davon jeweils (im Fall von Zeile 1,3,7 behalten Sie Zeile 1 und entfernen Sie andere Zeilen).

3 Verwenden Sie die Matrix, die im zweiten Schritt generiert wird, und entfernen Sie aus dieser Matrix jede Zeile mit der folgenden Sequenz 1 1 1 (wie Zeile 8) und setzen Sie die anderen Zeilen in dieser Matrix in eine neue Matrix.

+0

Mögliches Duplikat [Matrix generieren haben speziell charactristics] (http://stackoverflow.com/questions/39486469/generate-matrix-have-special-charactristics) –

Antwort

1
%Step-1 
% Converting the matrix into a string, appending a semi-colon for similarity and removing the brackets from the string 
req=mat2str(X);  req(end)=';'  ; req=req(2:end); 
% Searching the sequence: 1 1 0 0 0 
sp1=strfind(req, '1 1 0 0 0'); 
% Storing those rows of X in req matrix which contain the sequence 
req=X(unique(ceil([sp1]/(size(req,2)/size(X,1)))),:); 


%Step-2 
req= unique(req,'rows'); 

%Step-3 
% Converting the matrix into a string, appending a semi-colon for similarity and removing the brackets from the string 
reqtemp=mat2str(req); reqtemp(end)=';' ; reqtemp=reqtemp(2:end); 
% Searching the sequence: 1 1 1 
sp1=strfind(reqtemp, '1 1 1'); 
% Removing those rows which contain the sequence 
req(unique(ceil([sp1]/(size(reqtemp,2)/size(req,1)))),:)=[]; 
Verwandte Themen