Question regarding writing data to txt file

1 view (last 30 days)
Hi,
I have the following matrices:
A = [10,8,6;1,4,5]
B = [3,4,7;8,9,10]
I would like to print my data to a txt file that displays the name of the matrix, followed by row and column index of the data followed by the specific value for that column and row. For example:
A,1,1,10,1,2,8,1,3,6,2,1,1,2,2,4,2,3,5
B,1,1,3,1,2,4,1,3,7,2,1,8,2,2,9,2,3,10
Please help!..I am new to matlab

Accepted Answer

Image Analyst
Image Analyst on 26 Oct 2014
This should be rather straightforward and easy to understand. If not, ask.
A = [10,8,6;1,4,5]
B = [3,4,7;8,9,10]
fid = fopen('delete_me.txt', 'wt');
% Print out the line for A
[rows, columns] = size(A);
fprintf(fid, 'A');
for col = 1 : columns
for row = 1 : rows
fprintf(fid, ',%d,%d,%d', row, col, A(row, col));
end
end
% Now for the B matrix.
[rows, columns] = size(B);
fprintf(fid, '\nB');
for col = 1 : columns
for row = 1 : rows
fprintf(fid, ',%d,%d,%d', row, col, B(row, col));
end
end
fclose(fid);
% In the file, there should be this:
% A,1,1,10,1,2,8,1,3,6,2,1,1,2,2,4,2,3,5
% B,1,1,3,1,2,4,1,3,7,2,1,8,2,2,9,2,3,10

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 26 Oct 2014
A = [10,8,6;1,4,5]
[n,m]=size(A)
[ii,jj]=ind2sub(size(A),1:numel(A))
iA=reshape(ii,n,m)'
jA=reshape(jj,n,m)'
A=A'
s1=sprintf('%d,%d,%d,',[iA(:)';jA(:)';A(:)'])
  2 Comments
jana
jana on 26 Oct 2014
Thank you! but, using sprintf I cannot print my data to a txt file. Is there any other command that I can use?
Azzi Abdelmalek
Azzi Abdelmalek on 26 Oct 2014
A = [10,8,6;1,4,5]
[n,m]=size(A)
[ii,jj]=ind2sub(size(A),1:numel(A))
iA=reshape(ii,n,m)'
jA=reshape(jj,n,m)'
A=A'
fid=fopen('file.txt','w')
fprintf(fid,'%d,%d,%d,',[iA(:)';jA(:)';A(:)'])
fclose(fid)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!