regexprep在matlab中的疑问

时间:2011-07-03 06:18:21

标签: regex matlab

Z = {'A'; 'B'; 'C'};

Z=regexprep(Z,'A','1');

Z=regexprep(A,'B','2');

Z=regexprep(A,'C','3');

xlswrite('data.xls', A);

data.xls中的数据变为49 50 51.为什么数据不是1 2 3?

2 个答案:

答案 0 :(得分:1)

这应该是:

Z = {'A'; 'B'; 'C'};

Z=regexprep(Z,'A','1');

Z=regexprep(Z,'B','2');

Z=regexprep(Z,'C','3');

xlswrite('data.xls', Z);

请注意您拥有Z的最后3行中的A

答案 1 :(得分:0)

首先,修正您的代码,如PengOne所指出的那样。其次,请注意49,50和51是字符“1”,“2”和“3”的Unicode(和ASCII)代码。将类型char的数组传递给xlswrite时,它会写出该数组中字符的Unicode值。您可以使用cellfun和str2num将单元格的所有元素转换为如下数字:

Z1 = cellfun(@str2num, Z);

然后将Z1传递给xlswrite而不是Z