我有两个数据集分别存储在单元格数组和双数组中。两个数组的设计是:
数组1(名称: res )(double)由两列组成;唯一的id列和数据列。
数组2(名称: config )(单元格数组)包含3个列单元格,每个单元格内部都有一个字符串。数组中的最后一个单元格包含一个与数组1中的id匹配的id双整数。单元格数组中的双整数在必要时转换为double。
我想合并两个数据集,以便将单元格数组中的3个单元格和数组1中的结果列放在一个公共单元格数组中。我该怎么做?
我有以下代码。代码未返回结果的正确顺序。
function resMat = buildResultMatrix(res, config)
resMat = {};
count = 1;
count_max = size(res,1)/130;
for i = 1 : size(res,1)
for j = 1 : size(res,1)
if isequal(res(i),str2double(config{j,3}))
if i == 1
resMat(end+1,:) = {config{j,:} res(j,2:end)};
else
if count == 1
resMat(end+1,:) = {config{j,:} res(j,2:end)};
elseif count == count_max
resMat(end+1,:) = {config{j,:} res(j,2:end)};
else
resMat(end+1,:) = {config{j,:} res(j,2:end)};
end
count = count + 1;
end
end
end
count = 1;
end
end
答案 0 :(得分:0)
首先将config
中的ID转换为数字:
config(:,3) = num2cell(str2double(config(:,3)));
然后运行:
res = sortrows(res,1);
config(:,4) = num2cell(res(cell2mat(config(:,3)),2))
这会将来自res
的{{1}}的{{1}}数据放入具有相同ID的行中。