2016-05-12 5 views
-2

はすなわちMatlabで次のようにするには?

[45,63,22,22,12] 
51以外

[5,4,45,63,22,22,1,12,3,2] 

カウント数、すなわち、その後10で割る私が最初10番号、次いでn番号

e=[5,4,45,63,22,22,1,12,3,2,2,16,14,14,16,17,1,19,21,15,32,32,27,27,43,41,7,8,13,23,23] 

のシーケンスがあるとし

合計5 、その結果が今最初20数字は

[5,4,45,63,22,22,1,12,3,2,2,16,14,14,16,17,1,19,21,15] 

その後、

[45,63,22,22,12,16,14,14,16,17,19,21,15] 

合計= 1310のためのこのようなので13/202030、...までnへのIE用、5/10する必要があります数字 を入力してから、x軸ポイントのプロット図01020 ...行う方法5/1013/20、と10とy軸...この

私はこの

for e=10:10:400 
    for u=1:length(e) 
     d=(numel(u)>5) 
     h=d/u 
    end 
end 

でみましたが、それは違う示しています。

+2

'for'ループを使用することができます、 ':'演算子と基本論理インデックス、すなわち 'totals(k)= sum(e(1:k)> 10)'となります。コードを尋ねる前に自分で試したことを示すために自分で試して質問を編集してください。 – Dan

+0

あなたが試したことを示してください。 – wonko79

+0

こんにちは!この特定のアルゴリズムを実装したい理由はありますか?それは種類の宿題ですか? – Alfro

答えて

2

試しこここの

e= [5,4,45,63,22,22,1,12,3,2,2,16,14,14,16,17,1,19,21,15,32,32,27,27,43,41,7,8,13,23,23]; 

bins = 10:10:numel(e); 
counts = NaN(1,numel(bins)); %// pre-allocation. I'm pre-allocating with NaN here instead of zeros because 0 is a valid result for an element of counts and thus could make us miss errors should something go wrong 
for k = 1:numel(bins) 
    counts(k) = sum(e(1:bins(k)) > 5)/bins(k); 
end 

plot(bins, counts) %// or you might prefer bar(bins, counts) 

e(1:bins(k))はように、ループの最初の反復で第二の最初20eの最初10要素であることとします。 sum(... > 10)は、どれだけ多くの要素が5より大きいかを数えます。これがどのように機能するかを理解するには、x = [3 4 5 6 7 8 5 1 2]を検討してください。今度はx > 5は論理配列[0 0 0 1 1 1 0 0 0]を返します。したがって、sum(x>10)は、3と同じです。すなわち、xの要素の数が5より大きい3です。今度は、countsの別の要素にこの数を格納する必要があります。したがって、ベクトルを作成するのではなく、各繰り返しでcountsをスカラー数でオーバーライドするだけで、であり、後者にはではありません。それは各反復で各カウントを記録する。 MATLABで

あなたは、多くの場合、ループを離れて行うことができますし、この場合にもそうすることができます。

counts = cumsum(e > 5)./(1:numel(e)); 
h = counts(10:10:end); 
1

希望、これはあなた

n=30    % this because of the 'e' size 
Lim = 5   % your limit 
Steps = 10   % 

xValues = Steps:Steps:n 
PlotSeries = NaN(size(e,2)/Steps,2) 

for x = 1:1:size(e,2)/Steps 
    PlotSeries(x,:) = [xValues(x),size(e(e(1:xValues(x))>Lim),2)/xValues(x)] 
end 

plot(PlotSeries) 
+0

@ダン私はすでに質問に合わせて自分の答えを変更しました –

関連する問題