我已经为一些数据的可能性写了一个基本代码。它工作并给我输出,我想得到的。
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
答案 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