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(:)