Concatenate cell array with double matrix

조회 수: 1 (최근 30일)
Mauro Baldi
Mauro Baldi 2015년 6월 1일
댓글: Stephen23 2015년 6월 2일
I need to create a (m + 1)*n cell matrix concatenating a cell array of strings named NomiDopo with a m*n matrix of double, DataSet. The final result must be a (m + 1)*n cell matrix of string, otherwise the xlswrite function does not write the correct values in the output spreadsheet. This means converting the original matrix of double DataSet into a matrix of string. I tried in many ways, also using the mat2cell function, but it didn't work. Can anybody help me, please? Thank you!
  댓글 수: 1
Stephen23
Stephen23 2015년 6월 1일
Are you using xlswrite? This function accepts mixed data in a cell array, have you tried using this? What happens that you do not expect? Are the values represented incorrectly?

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2015년 6월 1일
편집: Stephen23 2015년 6월 1일
You can use num2str inside arrayfun to convert numeric values to a cell-array of strings:
>> A = {'header_1','header_2'};
>> B = [0.1,2.3;4.5,6.7;8.9,NaN]
B =
0.1000 2.3000
4.5000 6.7000
8.9000 NaN
>> C = arrayfun(@num2str,B,'UniformOutput',false)
C =
'0.1' '2.3'
'4.5' '6.7'
'8.9' 'NaN'
>> [A;C]
ans =
'header_1' 'header_2'
'0.1' '2.3'
'4.5' '6.7'
'8.9' 'NaN
  댓글 수: 2
Mauro Baldi
Mauro Baldi 2015년 6월 2일
Stephen, thank you so much!!!! It worked! What happened before is that if I used xslwrite with mixed data, then it didn't work and the ouptup was a spreadsheet with nothing inside. Thank you very much again! Best,
Mauro
Stephen23
Stephen23 2015년 6월 2일
Strange, as xlswrite should work with mixed data (it states this explicitly in the documentation). Can you show exactly how it was being used? It would be interesting to see the data (either upload a .mat file or as text within a comment).

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by