我有以下数据样本:
2001 1
2000 1
1974 1
2007 1
2007 2
2007 6
2007 3
1994 1
1986 1
2007 1
我希望按年对数据进行排序,然后绘制值。我使用for
和find
编写了代码。但是,使用fprintf
我只得到命令窗口中的输出,如下所示:
Ano-modelo 2009 | 88242 veiculos
Ano-modelo 2010 | 125822 veiculos
Ano-modelo 2011 | 132360 veiculos
Ano-modelo 2012 | 167984 veiculos
那么,是否有一些替代方法,在for
循环内,创建一个矩阵c = [年; sum_vehicles]
我的代码如下:
dados = dlmread('c:\experimental\frota_detran\frota-detran_total.dat');
ano = 1922:2015;
for i = ano
%procura somente os valores a cada ano
pro = find(dados(:,1)==i);
%lista somente os valores
qt = dados(pro,:);
%soma o ano modelo em questao
total = sum (qt(:,2));
%exibe os valores para cada ano modelo
fprintf('%s %d %s %d %s \n','Ano-modelo',i ,'|',total, 'veiculos');
end
答案 0 :(得分:1)
看起来您希望对数据进行排序和汇总:
[sorted ia ic] = unique(dados(:,1));
c = [sorted accumarray(ic, dados(:,2))];