我遇到了fprintf
的问题,如果你能帮助我,我会非常感激:
在我现在正在使用的程序中,当使用get(gca, ‘currentpoint’)
单击鼠标时跟踪鼠标位置,然后使用fprintf
保存最终位置。当我没有在图窗口中定义特定的轴位置时,一切都很顺利;但是当我使用set(gca, ‘visible’, ‘off’, ‘position’, [])
命令来定义特定的轴位置时,fprintf
有时会在文本文件上写下一个字符串K
或á
,然后给出尝试读取文件时dlmread
出现明显错误。我想知道文本文件中这些字符串的原因可能是什么。
以下是代码:
mouse = get(gca, 'currentpoint');
A = mouse(1, 1);
B = mouse(1, 2);
save x_center4.txt A -ascii;
save y_center4.txt B -ascii;
A = load('C:\MATLAB6p5\work\x_center4.txt');
B = load('C:\MATLAB6p5\work\y_center4.txt');
fid = fopen('grand_xcenter4.txt', 'a');
fid2 = fopen('grand_ycenter4.txt', 'a');
fprintf(fid, '%s %d\n', A);
fprintf(fid2, '%s %d\n', B);
fclose(fid);
fclose(fid2);
答案 0 :(得分:2)
fprintf(fid, '%s %d\n', A);
fprintf(fid2, '%s %d\n', B);
格式字符串后面只提供一个参数,格式字符串指定两个参数:字符串(%s
)和基数10有符号整数(%d
)?
这很可能是您报告的奇怪字符的原因。在A
来电之前,了解B
和fprintf
的类型和价值可能会有所帮助。
我一直在寻找MATLAB中构成“未定义行为”的官方文档,但还没有找到一个好的来源。但是,未能提供字符串指定的正确数量和类型的参数几乎肯定是合格的。