Math matlab中的一个简单概率码

Math matlab中的一个简单概率码,math,matlab,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-file,并为任何矩阵调用prob(A),但它不起作用。你能告诉我我的错误吗

我已经为一些数据的概率编写了一个基本代码。它可以工作,并提供我想要的输出

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-file,并为任何矩阵调用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

以下是如何从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);

以下是如何从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);

确保函数名与存储函数的文件名(不带.m)相同


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

确保函数名与存储函数的文件名(不带.m)相同


(还请注意,您可以在函数中省略返回。)

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

因此,您需要在第一行中指定它:

function [pr]=prob(A)
完整的功能将是(您不必在此处更改任何内容):


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

因此,您需要在第一行中指定它:

function [pr]=prob(A)
完整的功能将是(您不必在此处更改任何内容):


非常感谢你的回答:)我是在你的帮助下得到的……给你:'function[pr]=prob(a)a=length(a);b=唯一(A);对于i=1:length(b)T(i)=sum(A(:)==b(i));pr(i)=T(i)。/a;非常感谢你的回答:)我是在你的帮助下得到的……给你:'function[pr]=prob(a)a=length(a);b=唯一(A);对于i=1:length(b)T(i)=sum(A(:)==b(i));pr(i)=T(i)。/a;非常感谢:)理解创建函数真的很有帮助!非常感谢:)理解创建函数真的很有帮助!如果允许A是矩阵,我会小心地使用长度(A)来获得元素的数量。使用[rows colms]=大小(A);a=行*列。或者,a=length(a(:),如果允许a是矩阵,我会小心地使用length(a)来获得元素的数量。使用[rows colms]=大小(A);a=行*列。或者,a=长度(a(:)