在Matlab中计算百分比
我想计算准确率。我有下面的代码。但它给出了意想不到的输出,如“精度为2.843137e+01x37”。 而预期结果是“准确率为28.43%” 如何修复它 任何帮助都将不胜感激。 谢谢。试试看在Matlab中计算百分比,matlab,decimal,percentage,Matlab,Decimal,Percentage,我想计算准确率。我有下面的代码。但它给出了意想不到的输出,如“精度为2.843137e+01x37”。 而预期结果是“准确率为28.43%” 如何修复它 任何帮助都将不胜感激。 谢谢。试试看 a = 'The accuracy is %f.'; acc = 100 * double(y/j); sprintf (a,acc) 你几乎达到了你的预期,只要用正确的方式把它组合起来就行了 28.43%的正确格式说明符是%.2f%%。这将在小数点后提供两位数字,并在末尾添加%-号。您在变量percen
a = 'The accuracy is %f.';
acc = 100 * double(y/j);
sprintf (a,acc)
你几乎达到了你的预期,只要用正确的方式把它组合起来就行了 28.43%的正确格式说明符是
%.2f%%
。这将在小数点后提供两位数字,并在末尾添加%-号。您在变量percent
中定义了该值,但.0
应为.2
,如您在预期结果中所写。如果你仔细观察,你会发现,percent
从未被使用过
让我们得出结论。将格式说明符更改为以下内容:
a = 'The accuracy is %.2f%%';
这就是你需要做的。定义percent
的行以及格式short
可以省略,除非您以后需要它
重要的一点是,要加倍施放:你目前拥有的只是施放结果。如有必要,在除法前分别对y和/或j进行铸型。也许你不需要任何铸造在你的案件
假设
y
和j
的整个代码为:
输出:
ans=
准确率为28.43%
什么是y
,什么是j
以及它们的类型是什么?也许你想在除法之前显式施放双倍。顺便说一下,2.843e+01==28.43?@AnaAin不客气。还有一点需要注意的是:我假设不需要将演员阵容加倍。我扩展了我的答案,以显示在需要时正确的施法方式。
a = 'The accuracy is %.2f%%';
y = 28.43137; %// Amount of correct data
j = 100; %// Amount of all data
a = 'The accuracy is %.2f%%';
acc = 100 * (y/j); %// no cast
% acc = 100 * (double(y)/double(j)); %// with cast
sprintf(a,acc);