У меня есть массив ячеек (c) строк с некоторыми числами, помеченными знаком «#», и у меня есть матрица (данные) с такими же размерами (5x6).Если «c» имеет номер, помеченный символом «#», тогда я хочу заменить число в том же месте «data» на строку, содержащую «#».
Например, данные (1,1) должныбыть '# 2.537'.Вывод должен быть похож на массив ячеек «dataT1_2», сгенерированный приведенным ниже сценарием.Код ниже работает, но я думаю, что это немного комично и новичок.
c = {
'# 2.537' '1.219' '0.457' '0.214' '# 0.120' '0.245'
'3.244' '# 1.400' '0.649' '0.515' '0.207' '0.075'
'2.993' '1.282' '0.605' '0.309' '0.140' '0.140'
'3.278' '1.507' '0.885' '0.405' '0.160' '0.111'
'3.691' '1.474' '0.650' '0.316' '0.180' '0.155'}
IndexE = strfind(c, '#')
data=[
0.8147 0.0975 0.1576 0.1419 0.6557 0.7577
0.9058 0.2785 0.9706 0.4218 0.0357 0.7431
0.1270 0.5469 0.9572 0.9157 0.8491 0.3922
0.9134 0.9575 0.4854 0.7922 0.9340 0.6555
0.6324 0.9649 0.8003 0.9595 0.6787 0.1712]
[row,col] = find(~cellfun(@isempty,IndexE))
temp=strsplit(num2str(data(:)'))
shape=size(data)
temp2 = reshape(temp, shape(1,1), shape(1,2))
dataT1_2=temp2;
for m = 1:length(row)
temp3(m,1)=strcat('# ',temp2(row(m,1),col(m,1)));
dataT1_2(row(m,1),col(m,1))=temp3(m,1);
end