0

我遇到了麻烦,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);
4

1 回答 1

2
fprintf(fid, '%s %d\n', A);
fprintf(fid2, '%s %d\n', B);

当格式字符串指定两个参数时,您在格式字符串之后仅提供 1 个参数:一个字符串 ( %s) 和一个以 10 为底的有符号整数 ( %d)?

这很可能是您报告的奇怪字符的原因。在调用之前了解A和的类型和值可能会有所帮助。Bfprintf

我一直在寻找关于什么构成 MATLAB 中的“未定义行为”的官方文档,但还没有找到好的来源。但是,未能提供字符串指定的正确数量和类型的参数几乎可以肯定是合格的。

于 2012-05-28T18:10:06.373 回答