reading a matrix in matlab
Show older comments
hello, I have a matrix like below
> head(mat[,1:4])
AT1G01060 AT1G01170 AT1G01180 AT1G01260
AT1G01060 1.0000000 0.3193360 0.6272994 0.2658624
AT1G01170 0.3193360 1.0000000 0.3178880 0.3588030
AT1G01180 0.6272994 0.3178880 1.0000000 0.2542234
AT1G01260 0.2658624 0.3588030 0.2542234 1.0000000
AT1G01380 0.6178751 0.1561297 0.7052692 0.3252033
AT1G01490 0.5990499 0.6129301 0.6424225 0.5727253
>
how I can read that as a matrix to run as an input of my code. I attached my code thank you for your help
1 Comment
Star Strider
on 12 Jan 2016
You attached the code but not the file you are reading. Attaching ‘ND.m’ is not relevant because it apparently wants the matrix you want to read as its input argument.
I provided a textscan call to read your file (as best I could, considering I do not have your file to work with). Have you used it? Did it work?
Answers (1)
Star Strider
on 11 Jan 2016
1 vote
You did not attach your code. If this is a text file, please attach the file as well.
The easiest way to import it as a text file would be to use the textscan function.
6 Comments
fereshteh izadi
on 12 Jan 2016
Edited: fereshteh izadi
on 12 Jan 2016
Star Strider
on 12 Jan 2016
Your format descriptor is wrong.
Use this:
datacell = textscan(fid, '%s%f%f%f%f', 'HeaderLines', 1, 'CollectOutput',1);
datamatrix = cell2mat(datacell);
You may need to include other name-value pairs (such as 'Delimiter' and perhaps 'EndOfLine') as well, depending on how your file is organised.
fereshteh izadi
on 12 Jan 2016
Edited: fereshteh izadi
on 12 Jan 2016
Star Strider
on 12 Jan 2016
I cannot access that because I don’t have permission.
Attach it here using the ‘paperclip’ icon, and complete both the ‘Choose file’ and ‘Attach file’ steps.
fereshteh izadi
on 12 Jan 2016
Star Strider
on 12 Jan 2016
See if this works:
Ngenes = 20; % Insert Correct Value Here
datacell = textscan(fid, ['%*s' repmat('%f',1,Ngenes)], 'HeaderLines', 1, 'CollectOutput',1);
datamatrix = cell2mat(datacell);
The '%*s' tells textscan to skip over the first (string) column. The repmat call duplicates the '%f' format descriptor for the number of genes that are in your correlation matrix. The cell2mat call should then work, since ‘datacell’ will have only numeric values.
I cannot test this without your file, but it should work.
Categories
Find more on Standard File Formats in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!