problem using fprintf for writing cell data and global data at the same time.

[fileName, filePath] = uiputfile('*.doc', 'Create a <file:'>)
if ~ischar(fileName)
return;
end
fileID = fopen(fullfile(filePath, fileName), 'w');
cellArray=
'p.4004'
'p.4005'
'p.4007'
cellArray 3x1 cell global
matrix=[1 2 3;4 5 6;7 8 9]
%I can write these values separetely into word like this;
fprintf(fileID,'%47f %f \n',matrix')
fprintf(fileID,'%s\n',cellArray{:})
%but I need to write them together into microsoft word like this;
p.4004 1 2 3
p.4005 4 5 6
p.4007 7 8 9

 채택된 답변

cellArray={'p.4004'
'p.4005'
'p.4007'}
matrix=[1 2 3;4 5 6;7 8 9]
v=[cellArray num2cell(matrix)]
fileID = fopen('fic13.txt', 'w');
for k=1:size(v,1)
fprintf(fileID, '%s %d %d %d\n', v{k,:});
end
fclose(fileID)

댓글 수: 13

it gives this result;
p.4004 1 2 3 p.4005 4 5 6 p.4007 7 8 9
I want to create like this;
p.4004 1 2 3
p.4005 4 5 6
p.4007 7 8 9
That's what the code do. Have you copied it then run it?
open the file with wordpad, it's different from notepad
it cannot separate the p.'s and the numbers it writes them side to side.
i mean first column needs to be only p.'s and then the second and third columns includes numbers.
I opened microsoft word not note bloc.
Try this for notepad (\r\n)
cellArray={'p.4004'
'p.4005'
'p.4007'}
matrix=[1 2 3;4 5 6;7 8 9]
v=[cellArray num2cell(matrix)]
fileID = fopen('fic13.txt', 'w');
for k=1:size(v,1)
fprintf(fileID, '%s %d %d %d\r\n', v{k,:});
end
fclose(fileID)
it gives the same result sir.
What is your Operating System?
windows 7 64 bit, matlab 2012
I don't know what is the problem, when I run the same code, I'am getting the correct answer. Maybe you are checking the wrong file?
ok no problem, I'll try it again carefully, thank you so much for sparing your time.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Low-Level File I/O에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by