converting cell array of strings (dates) to matrix
3 次查看(过去 30 天)
显示 更早的评论
Hi, I get a cell array of strings by calling a sqlserver stored procedure. The strings are all dates "dd/mnm/yyyy" which I want to keep in string format.
Cell2mat creates (for an array of 100 cells) a 100x10 matrix, not the 100x1 I would like.
As my strings are all the same length, is there an easy way to convert to a matrix please?
Thanks a lot,
Tom
0 个评论
采纳的回答
Andrei Caragea
2011-11-24
Hey tombola.
The problem is that matlab views a string as a row of ascii values. For example, if you have a date like '01/01/2000', this is viewed as [48 49 47 48 49 47 50 48 48 48]. This is precisely why you get a 100*10 matrix. The cell format views the string '01/01/2000' as a single "object", so if you try size(cell) it will give [100 1]. But the string format is different. If you need to work with the string form, convert inside of the specific function you are using, i.e. instead of having C as the cell and M=cell2mat(C), try f(cell2mat(C(i)) where f is your function and i the current index.
BTW, if you want to see this in action, just try '01/01/2000'+1-1 in the command window.
1 个评论
Walter Roberson
2011-11-24
f(cell2mat(C(i))) would be f(C{i}) unless you have a cell array of cell arrays.
更多回答(1 个)
Titus Edelhofer
2011-11-24
Hi,
hmm, I don't understand: you have a cell array of strings (i.e., you have some 100x1 cell array). What exactly is the output you expect?
Titus
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!