öncelikle herkese merhaba, bir türlü yapamadığım bir şeyi sormak istiyorum.
Bir tane fonksiyon yazdım. şu şekilde çalışıyo.
Diyelim ki 1×10 luk ikili sayı sisteminden rastagele oluşturulmuş bir matrixim var.
Ben bu matrixi 5 er li iki eşit parçaya böldüm.
ve for düngüsünü kullanarak ilk beşliyi aldım, içerisinde 1 fazla varsa 1 diğer durumlarda çıkışa 0 yazdırdım.
buraya kadar sıkıntı olmadı ama sonucu bana ayrı ayrı veriyor. ben sonunu 1xN lik bir matrixte gömek istiyorum.
Yazdığım kod şu şekilde:
x=[1 0 0 1 1 0 0 1 1 0]; N=size(x,2); L=5; for i=1:L:N C=x(i:((i+(L-1)))); if sum(C)/L>0.5; F=1 else F=0 end end
Aldığım sonuç ise şu şekilde:
F =
1
F =
0
ama dediğim gibi ben sonucu F=[1 0] olarak görmek istiyorum. Çok zor bir şey olmadığınadan eminim ama bi türlü yapamadım.
Şimdiden teşekkürler.
Her bir döngü sırasındaki F değerini tüm döngü boyunca bir matriste depolayabilirsiniz. Aşağıdaki örneği inceleyebilirsiniz:
x=[1 0 0 1 1 0 0 1 1 0];
N=size(x,2);
L=5; for i=1:L:N
C=x(i:((i+(L-1))));
if sum(C)/L>0.5;
F=1; else
F=0; end SONUC(1,i) = F end
Cevap için teşekkürler.
Bunu denedim ama for döngüm 3 er 3 er arttığı için sonucuda 2 şer boşluklu yazıyor.
O zaman döngünüzü -2'den başlatarak sonuç SONUC vektörünü de ona göre yazabilirsiniz, yani
SONUC(1,(i-3)) = F
Ancak bunu yapmak işleri daha da karıştırabilir. Şöyle bir yol daha izleyebiliriz,
Bırakalım 2şer boşluklu SONUC matrisini yazdırsın. Daha sonra bu matristen bize lazım olan elementleri yani 1. 4. 7. … elementlerı ayrı bir döngü ile farklı bir matrise çekelim.