我尝试使用以下方法提取模型参数:
clc
clear all
data = xlsread('cancer_train.xlsx');
X = data(:,1:9);
Y = data(:,10);
mdl = fitcnb(X,Y);
mu=[];
[m,n] = size(data);
for i = 1:m
mu(i,1) = mdl.DistributionParameters{1,i}(1);
end
我在第9个元素之后得到索引超出范围!可以在此处找到excel:http://dropcanvas.com/#S47z19vg5WISRQ
答案 0 :(得分:0)
你的X取自数据,从1到9的所有行和列。在X中没有第10列。我认为你必须修改你的for循环
for i = 1:m
mu(i,1) = mdl.DistributionParameters{i,1}(i);
end
因为m是行数,所以索引i必须用在行中,而不是列中。在你的代码中,你总是在第1行读取,循环在X的列上。
如果要阅读列,则应使用n
for i = 1:n
mu(1,i) = mdl.DistributionParameters{1,i}(1);
end