text into matrix cell

Hello, here is my problem: I computed a matrix, 48x48, filled with values. I'm using then other very specific, user-unfriendly program that wants me to enter rows in the format: no.of row:value To show it on example:
original matrix:
250 120 25 ...
110 320 100 ...
desired matrix:
1:250 1:120 1:25 ...
2:110 2:320 2:100 ...
Anyone has an idea how to do this?
Thank you very much!
Martin

Antworten (3)

Jarrod Rivituso
Jarrod Rivituso am 1 Mär. 2012

0 Stimmen

My solution would involve meshgrid and some fancy arrayfun action (though you could easily replace arrayfun with a for loop)
%Some matrix
data = rand(5)
%Get a matrix of row numbers
rows = 1:size(data,1);
cols = 1:size(data,2);
[rowNums,colNums] = meshgrid(rows,cols);
%Combine it with original data
combineFunction = @(rownum,valnum) [num2str(rownum) ':' num2str(valnum)];
res = arrayfun(combineFunction, rowNums, data, 'UniformOutput', false)
Note you could then quite easily use something like xlswrite to export the res matrix.

2 Kommentare

Walter Roberson
Walter Roberson am 1 Mär. 2012
You do not use colNums, so you do not need to have it as an output argument from meshgrid()
(using meshgrid / ndgrid with a single output was my thought when I looked through the problem earlier today.)
Jarrod Rivituso
Jarrod Rivituso am 2 Mär. 2012
this is true, good point. i originally had meshgrid with one output argument, but that just looked weird to me :)

Melden Sie sich an, um zu kommentieren.

G A
G A am 1 Mär. 2012

0 Stimmen

A is your matrix kxk
C = cell(k,k);
for n = 1:k
for m = 1:k
C{m,n} = [num2str(m),':',num2str(A(m,n))];
end
end
Heryswe
Heryswe am 1 Mär. 2012

0 Stimmen

thanks guys, both ways work for me!

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 1 Mär. 2012

Community Treasure Hunt

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

Start Hunting!

Translated by