Add row/column names to a matrix

Hello! I've created a 24 x 12 matrix (24 is dynamic and will change with each .csv file I run through my for loop) and wanted to attach the years (minyear:maxyear) to the rows and months ('Jan' 'Feb' 'March' 'Apr' 'May' 'June' 'July' 'Aug' 'Sep' 'Oct' 'Nov' 'Dec') to the columns. What is the best way to do this? I've tried using colnames and the dataset feature with no success:
M = rand(5)
dataset({M 'FOO','BAR','BAZ','BUZZ','FUZZ'}, ...
'obsnames', {'ROW1','ROW2','ROW3','ROW4','ROW5'}
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
I've also attempted the printrow function
printmat(M, 'My Matrix', 'ROW1 ROW2 ROW3 ROW4 ROW5', 'FOO BAR BAZ BUZZ FUZZ' )
Undefined function 'printmat' for input arguments of type 'double'. Any suggestions? Thanks!

 Accepted Answer

You've missed a bracket
M = rand(5)
dataset({M 'FOO','BAR','BAZ','BUZZ','FUZZ'}, ...
'obsnames', {'ROW1','ROW2','ROW3','ROW4','ROW5'})

7 Comments

Can't believe that was my problem! Thanks for catching that!
ahmed
ahmed on 21 Oct 2013
Edited: Azzi Abdelmalek on 21 Oct 2013
I have an question regarding to this code, In case of adding only columns name to the matrix ? If i replaced { 'ROW1','ROW2','ROW3','ROW4','ROW5'} by {''}.. It did not work for me . any suggestions ??
M = rand(5)
dataset({M 'FOO','BAR','BAZ','BUZZ','FUZZ'})
Thx for quick answer. But i got this message : Error using ==> dataset.dataset>dataset.dataset at 256 Must have one variable name for each column when creating multiple variables from an array.
I have a matrix (100*14),I need to name the (14 cloumns with 14 labels ):
I used this one
dataset({mat1 'ROW1', 'ROW2', 'ROW3', 'ROW4', 'ROW5', 'FOO', 'BAR', 'BAZ', 'BUZZ'})
Then use 14 names instead of the 9 names you've used above
opsss. I thought that I am using 14 :).. Thx alot.
I have an extra question. Now its working great. but i want to save thses results into xls file, I tried this export(mat1,'XLSFile','mat1.xlsx') but I got this ndefined function or method 'export' for input arguments of type 'double'.
Error in ==> BIST1 at 52 export(mat1,'XLSFile','mat1.xlsx') .. Is there any clean way to convert to xls before name the lables and name them after xls conversion then using matlab to handle this ??

Sign in to comment.

More Answers (0)

Categories

Asked:

on 25 Jul 2013

Commented:

on 22 Oct 2013

Community Treasure Hunt

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

Start Hunting!