How can I count frequency in array?

2 ビュー (過去 30 日間)
fizz gerbera
fizz gerbera 2016 年 9 月 24 日
コメント済み: George 2016 年 9 月 24 日
I try to make a code which count the frequency of number in an array but the number output is incorrect. my coding:
clc; clear; element = zeros (1,50); ctr=1; i=1; freq=0;
num = input('Please state how many numbers you want to input: ');
while (ctr <= num) %input number in array
element (ctr) = input( 'Enter number: ');
ctr = ctr+1;
end
for ctr=1:1:num %to arrange number in descending
for i=1:1:num
if element (i) < element (i+1)
temp = element(i);
element (i) = element (i+1);
element (i+1) = temp;
end
end
end
disp('N Count');
for y=1:1:num %counting frequency of number
k = element(y);
if k ~= element (y+1)
for x = y:1:num
if k == element (x+1)
freq = freq+1;
end
end
fprintf('%d','%d',k, freq);
end
freq=0;
end
pause;
The output is as follow:
Please state how many numbers you want to input: 2 Enter number: 1 Enter number: 2 N Count 37100203710010

採用された回答

George
George 2016 年 9 月 24 日
fprintf prints to a file. You want to use sprintf. Also, your formatSpec is wrong. You want to define it as one string. Something like:
str = sprintf('%d %d', k, freq);
disp(str)
Should work.
  3 件のコメント
fizz gerbera
fizz gerbera 2016 年 9 月 24 日
編集済み: fizz gerbera 2016 年 9 月 24 日
thanks george. it can print the answer fine now. i tried to your suggestion.my coding is as follows, but i cant seem to make it work.
while k<=num
sum(nnz(A == k));
fprint('%d', k);
k=k+1;
end
George
George 2016 年 9 月 24 日
You should not be using fprintf.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by