matlab单元格内容,如何判断它们是什么?

时间:2014-05-23 16:05:06

标签: arrays matlab hex cell

我有一个填充了十六进制数据的单元格数组c,当我在matlab提示符下键入c查看单元格内容时,它显示了刻度线之间的内容,即' 0x0009'。但是,一个元素用括号括起来,看起来像[650345]。如何将[]数据转换为' '数据?当我在这个特定元素上执行iscellstr时,matlab返回0. iscellstr为c的所有其他元素返回1.

我从excel那里将这些数据读入matlab,我担心excel能帮助他们做出贡献。我将一个十六进制值转换为科学记数法。就我所知,我无法改变excel的所作所为。我认为真正的价值已经消失,无法恢复。但我需要转换这个突出的值,即使不正确,就像其他单元格值一样,以便我可以继续处理。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果您知道错误值的索引及其真值,您只需:

c(idx) = {'0x0009'};

答案 1 :(得分:0)

我认为这可以满足您的需求:

ind = cellfun(@isnumeric, c); %// find numeric cells
c(ind) = cellfun(@(s) ['0x' dec2hex(s)], c(ind), 'uniformout', 0); %// convert to
%// hex string and prepend '0x'

示例:输入

c = {'0x0009', 650345};

产生输出

c = 
'0x0009'    '0x9EC69'