Matlab fprintf打印数字之间的随机字符串字母(即K或á;)

Matlab fprintf打印数字之间的随机字符串字母(即K或á;),matlab,Matlab,我在fprintf方面遇到问题,如果您能帮助我,我将不胜感激: 在我现在使用的程序中,我使用get(gca,'currentpoint')单击鼠标时跟踪鼠标位置,然后使用fprintf保存最终位置。当我没有在图形窗口中定义特定的轴位置时,一切都会顺利进行;然而,当我使用set(gca,'visible','off','position',[])命令定义特定的轴位置时,fprintf有时会在文本文件上写下一个字符串,或者K或者a,当试图读取文件时,这会给出dlmread的明显错误。我想知道文本文件

我在
fprintf
方面遇到问题,如果您能帮助我,我将不胜感激:
在我现在使用的程序中,我使用
get(gca,'currentpoint')
单击鼠标时跟踪鼠标位置,然后使用
fprintf
保存最终位置。当我没有在图形窗口中定义特定的轴位置时,一切都会顺利进行;然而,当我使用
set(gca,'visible','off','position',[])
命令定义特定的轴位置时,
fprintf
有时会在文本文件上写下一个字符串,或者
K
或者
a
,当试图读取文件时,这会给出
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);
如果格式字符串指定两个参数:字符串(
%s
)和基数为10的带符号整数(
%d
),则在格式字符串后仅提供1个参数

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


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

没有任何代码,很难说出错误在哪里。请添加复制错误所需的代码的相关部分。谢谢,但我的代码相当长且复杂(需要一些已保存在目录中的jpeg文件才能运行),并且所有内容都依赖于所有内容,因此我不知道如何简化以将其放在此处快速查看。如果可能的话,我非常感谢大家对fprintf为什么会在数字文件中写入随机字符串的一些一般性评论。你能至少发布有问题的fprintf调用,精确显示你正在使用的格式字符串等吗?谢谢。这里是:
mouse=get(gca,'currentpoint');A=小鼠(1,1);B=小鼠(1,2);保存x_center4.txt A-ascii;保存y_center4.txt B-ascii;A=加载('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)@user1365673:不要在注释中发布代码。如果您需要SO的帮助,请让我们轻松地帮助您。编辑您的问题,并在其中包含您的代码。如果您没有代表编辑您的问题,请将其删除并重新发布。@我之所以没有更具体的措辞,是因为我很难在MATLAB中找到“未定义行为”的正式定义-这似乎符合定义,但我似乎找不到正式文档。嗨,事实上,这就是问题所在!它现在工作得非常好!非常感谢你!我现在使用的语法是:
fprintf(fid,'%6.4f',A)fprintf(fid, '%s %d\n', A);
fprintf(fid2, '%s %d\n', B);