错误使用表(第231行)所有表变量必须有相同数量的行。错误correct1(35)行disease_cure_table =表(all_diseases、all_Pests all_cures,

4视图(30天)
我有两个excel文件,需要找到commomn然后写出疾病名称和疾病治疗的同一行新的excel表,还发现coomon害虫和写他们的名字和治疗但不知何故我得到上面的错误,请帮我找到解决方案。我从事的代码是%加载两个Excel文件
%加载两个Excel文件
file1 =“DiseaseCure.csv”;
file2 =“ExcelStages.csv”;
data1 = readtable (file1);
data2 = readtable (file2);
%找到两个文件中的行“萎凋病”和“白叶枯病”
fusarium_rows1 = ismember (data1。Diseases_Pests{“萎凋病”});
fusarium_rows2 = ismember (data2。疾病,{“萎凋病”});
bacterial_rows1 = ismember (data1。Diseases_Pests{白叶枯病的});
bacterial_rows2 = ismember (data2。疾病,{白叶枯病的});
jassid_rows1 = ismember (data1。Diseases_Pests{叶蝉的});
jassid_rows2 = ismember (data2。害虫,{叶蝉的});
thrips_rows1 = ismember (data1。Diseases_Pests{蓟马的});
thrips_rows2 = ismember (data2。害虫,{蓟马的});
%从两个文件提取所有疾病的治疗
fusarium_cure1 = data1.Cure (fusarium_rows1);
fusarium_cure2 = data2.Cure (fusarium_rows2);
bacterial_cure1 = data1.Cure (bacterial_rows1);
bacterial_cure2 = data2.Cure (bacterial_rows2);
jassid_cure1 = data1.Cure (jassid_rows1);
jassid_cure2 = data2.Cure (jassid_rows2);
thrips_cure1 = data1.Cure (thrips_rows1);
thrips_cure2 = data2.Cure (thrips_rows2);
%将治疗到一个变量中
all_cures = {“fusarium_cure1”;“fusarium_cure2”;“bacterial_cure1”;“bacterial_cure2”;“jassid_cure1”;“jassid_cure2”;“thrips_cure1”;' thrips_cure2 '};
%结合成一个单一变量的疾病
all_diseases ={“萎凋病”;“萎凋病”;“白叶枯病”;“白叶枯病”;“叶蝉”;蓟马的};
all_Pests ={叶蝉的;蓟马的};
%与疾病和治疗方法创建一个新表
disease_cure_table =表(all_diseases all_Pests、all_cures VariableNames,{“疾病”;'治疗'});
%写表到一个新的Excel文件
new_file =“good5.csv”;
writetable (disease_cure_table new_file);

答案(1)

乔恩
乔恩 在2023年5月12日28。啊
当你的DiseaseCure。csv文件你只有两列,Diseases-Pests和治疗,然后你读这些data1的表。但在你参考data1的代码。疾病和data1.Pests
data1的唯一变量将Diseases_Pests (MATLAB转换变量Diseases-Pests Diseases_Pests使一个有效的名字)。所以你的代码将得到一个错误data1一旦你参考。疾病或data1.Pests。
你似乎表明不同的错误。你确定你在正确的代码吗?如果你附加额外的代码,请使用“代码”按钮,剪切和粘贴,这样它将良好格式化的,很容易复制。
4评论

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!