如何将原始矩阵划分为不同的矩阵根据字符串

1视图(30天)
我的想法是创建“M_ROCK”矩阵如果rock_index = = 2(即有多种岩石类型模型)。然后输入的数量根据M_ROCK的岩石类型。下面的图片是M_ROCK部分的截图。
例如,有两个岩石类型r1和r2 M_ROCK,全国矿工工会然后将输入2,和“M_ROCK”中的值将被转移到相应的新矩阵M_ORE(这可能包括M_ORE1和M_ORE2)和M_WASTE,根据字符串“r1_mill_tonnage”和“r2_mill_tonnage”。然而,当我运行下面的代码,有一个错误的行索引超过表维度。
在这种情况下,只有两种类型的岩石,可能有三个,四个,等其他情况下,如何编写一个代码,可以总结这些情况。换句话说,输入数量的岩石类型、值将automically转移到相应的M_ORE (ORE1、ORE2…)和M_WASTE根据字符串“rn_mill_tonnage”(n = 1, 2, 3, ....)
提前感谢你的帮助!
elseifrock_index = = 2
% %
M_ROCK =岩石;
M_ROCK = array2table (M_ROCK,“VariableNames”,G_Value.Properties.VariableNames);
%的数量输入,然后创建相应的岩石类型
%矿石矩阵,确定多种岩石类型
num =输入('请输入数量的岩石类型:);
% 6。从岩石中提取矿石和废物矩阵矩阵(多种岩石类型)
%设置初始矩阵分别矿石和浪费
M_WASTE = 0 (R1, C1);%浪费矩阵多种岩石类型
M_ORE = 0 (R1, C1);
j = 1: num
STR =细胞(1,num);
STR {j} = sprintf (' r % d_mill_tonnage ',j);
如果table2array (M_ROCK(我,STR {j})) > 0
M_ORE(我)= table2array (M_ROCK(我,:));
k = 1: num
M_ORE = 0 (R1, C1, num);
结束
其他的
M_WASTE(我)= table2array (M_ROCK(我,:));
结束
结束
3评论

登录置评。

接受的答案

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021年5月31日
你好,
这里有一些修正代码中:
. .
STR =细胞(1,num);
M_ORE = 0 (R1, C1, num);
j = 1: num
STR {j} = sprintf (' r % d_mill_tonnage ',j);
如果table2array (M_ROCK(我,STR {j})) > 0
M_ORE (j) = table2array (M_ROCK (j,:));%不是“我”,但“j”
其他的
M_WASTE (j) = table2array (M_ROCK (j,:));%不是“我”,但“j”
结束
结束
1评论
曹国伟张
曹国伟张 2021年5月31日
谢谢你的回答!但这条线 如果table2array (M_ROCK(我,STR {j})) > 0 '有一个错误行索引超过表维度

登录置评。

更多的答案(0)

类别

找到更多的在环境和设置帮助中心文件交换

社区寻宝

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

开始狩猎!