matlab中的简单概率代码

时间:2011-12-21 13:36:51

标签: math matlab

我已经为一些数据的可能性写了一个基本代码。它工作并给我输出,我想得到的。

A=[2 3 5 4 4 4 5 2 3 2 3]
    a=length(A);
    b=unique(A);
    for i=1:length(b)
        T(i)=sum(A(:)==b(i));
        prob(i)=T(i)./a;

    end

我无法理解如何将此代码用作函数。我将以下代码保存为M文件,并将其称为任何矩阵的prob(A),但它不起作用。你能告诉我我的错误吗?

function z=prob(A)
a=length(A);
b=unique(A);
for i=1:length(b)
    T(i)=sum(A(:)==b(i));
    pr(i)=T(i)./a;
    z=pr(i);
end
return
    end

3 个答案:

答案 0 :(得分:2)

这是你从matlab函数返回东西的方法:

 function [prob count] = calcProb(data, classNo)
   count = 0;
   rows = length(data);
   for i= 1:rows
      myValue=data(i);
      if(myValue == classNo) 
        count=count+1;
      end
   end

   prob = count/rows;

及其相关电话是

     [PC1 sampleC1]= calcProb(trainY, 0);

答案 1 :(得分:1)

确保函数名称与存储函数的文件名(不包含.m)相同。

(另请注意,您可以省略函数中的返回值。)

答案 2 :(得分:1)

我认为您只需要指定输出变量即可。 在这里,我想你想输出pr

所以你需要在第一行指定它:

function [pr]=prob(A)

并且完整的功能将是(您不必在此处更改任何内容):

function [pr]=prob(A)
a=length(A);
b=unique(A);
for i=1:length(b)
    T(i)=sum(A(:)==b(i));
    pr(i)=T(i)./a;
end