MATLAB: Comment utiliser la fonction If pour choisir seulement quelques valeurs de la matrice

J’ai 10 points avec les axes x et y qui sont représentés dans la matrice C: C =
 
11.1902 78.9215
43.7123 84.8152
26.2182 55.0542
89.4285 18.3821
41.1215 32.8977
62.8533 101.3337
26.5649 25.2378
70.1982 92.5817
36.2971 63.8342
75.4079 109.6135
The first column represents x axis, and second column indicates y axis.
I need to set conditions like:
If x positions of any 10 points is less than 5 or more than 60 (5>x>60),
cancel that point (x,y) from the matrix.
Actually I tried like this, but something is wrong:
if length(find(C(:,1)<5| C(:,1)>60))~=0
 
fin
À la fin, les résultats devraient être comme ceci: C =
 
11.1902 78.9215
43.7123 84.8152
26.2182 55.0542
41.1215 32.8977
26.5649 25.2378
36.2971 63.8342
 

Meilleure réponse

  •  

    C = [11.1902 78.9215
    43.7123 84.8152
    26.2182 55.0542
    89.4285 18.3821
    41.1215 32.8977
    62.8533 101.3337
    26.5649 25.2378
    70.1982 92.5817
    36.2971 63.8342
    75.4079 109.6135] ;
    x = C(:,1) ; y = C(:,2) ;
    idx = find(x<5 | x>60) ;
    C(idx,:) = [];
    C =
    11.1902 78.9215
    43.7123 84.8152
    26.2182 55.0542
    41.1215 32.8977
    26.5649 25.2378
    36.2971 63.8342

     

  • MATLAB: suppression d’une colonne entière à l’aide d’une instruction IF

    Salut,
    J’ai un double 91 x 265 pour lequel parfois la première colonne contient des valeurs NaN. Si la première colonne contient des valeurs NaN, je voudrais la supprimer. Si la première colonne n’inclut pas NaN, je souhaite que ce soit la première colonne.
    data = RESULTS.IK_Original (1) .data;
    NaN 0,308000000000000 0,0290000000000000 -0,790000000000000 0,993000000000000
    NaN 0,317000000000000 0,0280000000000000 -0,779000000000000 0,991000000000000
    NaN 0,325000000000000 0,0270000000000000 -0,768000000000000 0,990000000000000
    NaN 0,333000000000000 0,0260000000000000 -0,758000000000000 0,989000000000000
    NaN 0,342000000000000 0,0250000000000000 -0,747000000000000 0,989000000000000
    NaN 0,350000000000000 0,0240000000000000 -0,736000000000000 0,988000000000000
    NaN 0,358000000000000 0,0230000000000000 -0,725000000000000 0,988000000000000
    NaN 0,367000000000000 0,0220000000000000 -0,714000000000000 0,987000000000000
    NaN 0,375000000000000 0,0200000000000000 -0,703000000000000 0,988000000000000
    Remarque: ce ne sont que les 9 premières lignes et 5 colonnes de mes données.
    Merci beaucoup,

    Meilleure réponse

  •  

    data(:,all(isnan(data))) = [] % deletes entire column