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.
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)
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