我有一个csv文件,其中一些整数存储在三列
中 trainData = load('training.csv')
我想计算某个范围内某个值的出现次数并绘制结果。
count = @(x) (sum(trainData(:,2)==x));
fplot(count,[0,500]);
然而,这仅适用于某些限制,我无法弄清楚原因。如果限制未设置为“正确”,则count()
始终返回零。
这是有效的,这意味着该图显示了一些值> 0:
fplot(count,[0,500]);
fplot(count,[100,600]);
fplot(count,[101, 601]);
fplot(count,[200,700]);
fplot(count,[50, 550]);
这不是,这意味着线条保持平坦,即使肯定有一些y>在此范围内的0(与之前的图相比):
fplot(count,[0,300]);
fplot(count,[200,450]);
fplot(count,[1,501]);
答案 0 :(得分:1)
这种奇怪行为的原因是fplot
从指定的x值范围中选择值的方法。默认情况下,步长不是1(我假设),fplot
也不会在指定范围内使用所有可能的值(这可能是不可能的)。因此,我的方法没有找到csv中出现的所有值(它们都是整数)。因此,上面的“工作”示例可能只触及某些的出现值,而非工作示例仅仅是起始值([200,450]的图),而不是任何其他值。
简而言之,以下解决了这个问题:
fplot(count,[0,n], n);
它评估0
到n
范围内每个整数的匿名函数。