Table 尝试绘制鸢尾花数据集时出现变量名重复错误

Table variable name duplication error when trying to plot iris dataset

我一直在尝试绘制包含萼片长度、萼片宽度、花瓣长度和花瓣宽度的四维数据集的每个二维组合的鸢尾花数据点。我尝试按照 Fuzzy C-Means Clustering for Iris Data 中编写的文档进行操作,但我一直收到错误消息,例如“在 ASCII 文件 iris.dat 的第 1 行使用加载未知文本时出错” “鸢尾花”。当我尝试在命令 window.

中输入 load iris.dat 时

这是我到目前为止写的:

iris = readtable('iris.dat');
setosa = iris(1:50,:);
versicolor = iris(51:100,:);
virginica = iris(101:150,:);
obsv_n = size(iris, 1);

Characteristics = {'sepal length','sepal width','petal length','petal width'};
pairs = [1 2; 1 3; 1 4; 2 3; 2 4; 3 4];
h = figure;
for j = 1:6
    x = pairs(j, 1);
    y = pairs(j, 2);
    subplot(2,3,j);
    plot([setosa(:,x) versicolor(:,x) virginica(:,x)],[setosa(:,y) versicolor(:,y) virginica(:,y)], '.');
    xlabel(Characteristics{x});
    ylabel(Characteristics{y});
end

我遇到的唯一问题是 plot 命令的那一行,它给我“使用 askisi1_5 时出错”(第 14 行) 重复 table 变量名称:'Var1'.'

虽然我没有模糊逻辑工具箱,但我有 Statistics & ML Toolbox,它提供了一个名为 'fisheriris.csv' 的文件,可以用 readtable() 打开。我怀疑在你的情况下你需要做的就是在连接来自不同 table 数组的具有相同变量名的列之前调用 table2array() (即在做像 [setosa(...,n) versicolor(...,n) ...] 这样的事情之前):

iris = readtable('fisheriris.csv');
setosa = iris(1:50,:);
versicolor = iris(51:100,:);
virginica = iris(101:150,:);

Characteristics = {'sepal length','sepal width','petal length','petal width'};
setosa = table2array(setosa(:,1:end-1));
versicolor = table2array(versicolor(:,1:end-1));
virginica = table2array(virginica(:,1:end-1));

pairs = [1 2; 1 3; 1 4; 2 3; 2 4; 3 4];
h = figure;
for j = 1:6
    x = pairs(j, 1);
    y = pairs(j, 2);
    subplot(2,3,j);
    plot([setosa(:,x) versicolor(:,x) virginica(:,x)], [setosa(:,y) versicolor(:,y) virginica(:,y)], '.');
    xlabel(Characteristics{x});
    ylabel(Characteristics{y});
end