Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab:fprintf输出两次,由于某种原因不完整_Matlab_Printf_Output - Fatal编程技术网

Matlab:fprintf输出两次,由于某种原因不完整

Matlab:fprintf输出两次,由于某种原因不完整,matlab,printf,output,Matlab,Printf,Output,以下是我使用fprintf将结果写入命令窗口的代码摘录: ... hold off; X_H2S = (F_H2S_0-F_H2S)/F_H2S_0; X_COS = (F_COS_0-F_COS)/F_COS_0; X_CS2 = (F_CS2_0-F_CS2)/F_CS2_0; plot(W,X_H2S,W,X_COS,W,X_CS2) fprintf('\nFinal conversions (percent):\n\t\tH2S: %f\n\t\tCOS: %f\n\t\tCS2:

以下是我使用fprintf将结果写入命令窗口的代码摘录:

...
hold off;
X_H2S = (F_H2S_0-F_H2S)/F_H2S_0;
X_COS = (F_COS_0-F_COS)/F_COS_0;
X_CS2 = (F_CS2_0-F_CS2)/F_CS2_0;
plot(W,X_H2S,W,X_COS,W,X_CS2)

fprintf('\nFinal conversions (percent):\n\t\tH2S:  %f\n\t\tCOS:  %f\n\t\tCS2:  %f\n\n',100*X_H2S(size(X_H2S)),100*X_COS(size(X_COS)),100*X_CS2(size(X_CS2)))

fprintf('Pressure drop: %f to %f (%f percent)',P_0,P(size(P)),100*(P_0-P)/P_0)


format longG
%format compact
length = size(fs, 2);
...
出于某种原因,它的输出如下:

Final conversions (percent):
        H2S:  24.838056
        COS:  0.000000
        CS2:  99.997968


Final conversions (percent):
        H2S:  0.000000
        COS:  98.985525
        CS2:  0.000000

Pressure drop: 129099.000000 to 128217.024848 (129099.000000 percent)Pressure drop: 0.000000 to 0.000000 (0.000000 percent)Pressure drop: 0.000000 to 0.000000 (0.000000 percent)Pressure drop: 0.000000 to 0.000002 (0.000003 percent)Pressure drop: 0.000005 to 0.000020 (0.000034 percent)Pressure drop: 0.000049 to 0.000196 (0.000343 percent)Pressure drop: 0.000490 to 0.001555 (0.002621 percent)Pressure drop: 0.003687 to 0.007620 (0.011556 percent)Pressure drop: 0.015495 to 0.019436 (0.030585 percent)Pressure drop: 0.041755 to 0.052945 (0.064154 percent)Pressure drop: 0.081088 to 0.098064 (0.115084 percent)Pressure drop: 0.132146 to 0.149250 (0.166397 percent)Pressure drop: 0.183585 to 0.200973 (0.218403 percent)Pressure drop: 0.235875 to 0.253389 (0.270943 percent)Pressure drop: 0.288536 to 0.310239 (0.331999 percent)Pressure drop: 0.353815 to 0.375693 (0.397640 percent)Pressure drop: 0.419669 to 0.445698 (0.471872 percent)Pressure drop: 0.498193 to 0.524642 (0.533730 percent)Pressure drop: 0.542828 to 0.551935 (0.561052 percent)Pressure drop: 0.570178 to 0.579314 (0.596511 percent)Pressure drop: 0.613741 to 0.631004 (0.648300 percent)Pressure drop: 0.665627 to 0.683177 (

知道我为什么和如何修复它吗?

你的参数是向量。如果我这样做:

>> fprintf('Number: %f\n',rand(2,1))
Number: 0.957507
Number: 0.964889

我观察到和你一样的行为。您之所以认为只打印一个,是因为您正在调用
size
,但size返回一个1x2数组,分别包含数组中的行数和列数。

这取决于您提供给fprintf函数的值。请参阅此输出:

>> fprintf('\nFinal conversions (percent):\n\t\tH2S:  %f\n\t\tCOS:  %f\n\t\tCS2:  %f\n\n',[1,1],[1,1],[1,1])

Final conversions (percent):
        H2S:  1.000000
        COS:  1.000000
        CS2:  1.000000


Final conversions (percent):
        H2S:  1.000000
        COS:  1.000000
        CS2:  1.000000

在这两种情况下,您都在创建多个字符串,因为您的变量是数组。我还认为您的意思是删除过长的数字,请查看
%f
语法,例如
%3.5f
在小数点前给出3个数字,小数点后给出5个数字。啊,谢谢!然后我将使用行计数来检查是否修复了它。谢谢