需要将char转换为单元格数组

时间:2013-10-02 21:52:33

标签: matlab type-conversion cell

您好我在matlab中有以下对象:

class(data{1}) =

    char

存储在

class(data) =

    cell

但是我想打电话:

[estt,este]  = hmmtrain(data{1},e,t);

并收到错误:

??? Error using ==> hmmtrain at 209
Seqs must be cell array or numerical array.

有没有办法让数据的每个元素与hmmtrain函数兼容?

非常感谢

1 个答案:

答案 0 :(得分:2)

对于您的序列,data{1}是一个char数组,因此通过double将每个字符转换为ASCII代码:

[estt,este]  = hmmtrain(double(data{1}),e,t);

如果你想为hmmtrain多个序列提供第一个输入参数使用单元格数组的选项(因为看起来很多人希望将data作为一个单元格),请尝试以下方法,

dataNumCell = cellfun(@double,data,'UniformOutput',false);
[estt,este]  = hmmtrain(dataNumCell,e,t);

编辑:更新了多个序列选项,其中hmmtrain有额外的双倍。