specify size output
4 次查看(过去 30 天)
显示 更早的评论
Hi I (with lots of help) have written the following code:
In = dlmread(FileName);
[unDates,trash,IDX] = unique(In(:,1:5),'rows');
Out = [unDates zeros(size(unDates,1),1)];
for d = 1:size(unDates,1)
Out(d,end) = mean(In(IDX == d,end));
end
dlmwrite ('IonOut.csv',Out,'-append','precision','%0.10g','delimiter',',');
end
It does its job of finding unique values column 5 of a csv file that looks like this:
2002,1,1 ,13, 731217, 1119.566899634552 , 8.11440000
however the output file leaves off the last column, I cant see what I have done wrong, can anyone help?
Patrick
0 个评论
采纳的回答
Jan
2011-3-16
Does "Out" contain the wanted values? Or do you want to consider the last two columns of the input? Please check this by "disp(Out)".
INSERTED: Code to consider the 6th column also:
[unDates,trash,IDX] = unique(In(:,1:5), 'rows');
siz = size(unDates);
Out = [unDates, zeros(siz(1), 2)];
for d = 1:siz(1)
Out(d, 6:7) = mean(In(IDX == d, 6:7), 1);
end
Are you sure, that you want to append the calculated data to the file?
INSERTED: If you do not want to append the values to the file, omit the -append flag.
dlmwrite('IonOut.csv', Out, 'precision','%0.10g', 'delimiter', ',');
4 个评论
Oleg Komarov
2011-3-16
You can specify any function which returns a scalar when applied to a vector:
accumarray(subs,vals,[],@mean)
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!