在Matlab中计算百分比

时间:2016-05-19 05:19:18

标签: matlab decimal percentage

我想计算准确度的百分比。我有下面的代码。但它给出了这样的意外输出"准确度是2.843137e + 01x37"。 虽然预期结果为"准确度为28.43%"

y %Amount of correct data
j %Amount of all data
a = 'The accuracy is %dx%d.';
percent = '%.0f%%';
format short
acc = 100 * double(y/j);
sprintf (a,acc)

如何解决?

任何帮助都会非常感激。 谢谢。

2 个答案:

答案 0 :(得分:2)

你几乎拥有了你所期望的,只要把它放在一起就好了。

28.43%的正确格式说明符为%.2f%%。这会在小数点后面给出两位数,并在末尾添加%-sign。您已在变量percent中定义了该值,但.0应为.2,因为您已在预期结果中写入两位数字。仔细观察,您会发现percent从未使用过。

让我们得出结论。将格式说明符更改为以下内容:

a = 'The accuracy is %.2f%%'; 

这就是你需要做的一切。定义percent的行可以省略format short,除非您以后需要这样做。

关于演员要加倍的重要事项:你现在拥有的只是投射结果。如果必要,请在分割之前单独执行 y和/或j 。可能你不需要任何铸造。

假设yj的整个代码是:

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);

输出:

ans =
The accuracy is 28.43%

答案 1 :(得分:1)

尝试,

class FilterModel(QStandardItemModel):

    def __init__(self, filter_list, parent=None):
        super(FilterModel, self).__init__(parent)

        for index, filter in enumerate(filter_list):
            item = QStandardItem(filter)
            item.setSelectable(True)
            item.setCheckable(True)
            item.setCheckState(Qt.Unchecked)
            self.setItem(index, 0, item)