Bir matristen 0 olan sütunları sildirmek istiyorum. Mesela;
2 3 0 7 0
0 5 0 4 0
11 6 0 5 0
19 18 0 16 0
3 9 0 7 0
4 7 0 6 0
Bu 6x5lik matrisin 3. ve 5. sütunlarını sildirmek istiyorum ama her seferinde 0 sütunlarının yerleri değişiyor. mesela bir sonraki matriste 2. ve 4. sütunlar 0 sütunu olabilir. Nadıl yapabilirim.
Saygılarımla
Merhaba, aşağıdaki örnek kodu inceleyebilirsiniz:
%MATLABTurkiye.com clc; clear all; A = randi([0 4],5,5) %Rastgele 5e 5lik bir matris olusturalim [satir sutun]= find(A==0); %0larin konumlarini bulalim sutun = unique(sutun, 'rows', 'first'); %tekrar eden konumları silelim-Bir sutunda birden fazla sıfır var ise onu 1 kere alalım for i=1:length(sutun) %Döngüyü sütun sayısı kadar döndürelim [satir sutun]= find(A==0); %Her döngüde 0 olan sütu değişeceği için tekrar =ların sırasını bulalım A(:,sutun(1)) = [] %Sıfır olan sütunu silelim end %MATLABTurkiye.com
Merhaba, teşekkür ederim. İstediğim şekilde çalışıyor fakat ben şunu istiyorum, bir sutundaki bütün elemanlar 0 ise silinsin. Yani 6 satırdan 6sı da 0 olursa sutun silinsin, yani 6 satırdan 1 tanesi 0 ama diğerleri sayı ise sutun silinmesin. Bunu nasıl yapabiilirim?
Aşağıdaki kodu inceleyebilirsiniz:
M = [1 0 3;0 0 0;1 0 3] %Örnek Matris
M( :, ~any(M,1) ) = [] %Sütunları sil