[英]Matlab Algorithm and Output File
我正在為Matlab課程處理作業問題。 這就是問題 :
根據幻燈片5所示算法的流程圖,構造一個m文件函數mom。請注意,輸出不是提供給屏幕,而是提供給名為output.txt的文件,並且具有給定的結構(請參見幻燈片6)。
在您的腳本中,使用以下輸入調用此函數(將這些輸入放入所示的腳本文件中,然后將mom函數稱為mom(x,r,name,filename);)
x = [1 3 2 5 3 3 7 4 3 4 5 8 2];
r = 4;
name = ‘Your name here’;
filename = ‘output.txt’;
mom(x,r,name,filename);
我還將附加算法流程圖和輸出文件結構。
我的主要腳本代碼如下所示:
x=[1 3 2 5 3 3 7 4 3 4 5 8 2 ];
r=4;
name= 'Matthew Haskell';
filename='output.txt';
[xbar,sn]=mom_Haskell(x,r,name,filename);
out= fopen('Output.txt','w');
fprintf(out,'\t\t\tCalculation by: %s\n\n',name);
fprintf(out,'The average is %.4f while the %.2f th moment is %.2f', xbar,r,sn);
我的函數文件代碼如下所示:
function[xbar,sn] = mom_Haskell( x,r,name,filename )
n=length(x);
xbar=mean(x);
num=0;
den=0;
for k:1:1:n
num=num+(x(k)-xbar)^r;
den=den+(x(k)-xbar)^2;
end
sn=(num/n) / (den/n)^(r/2);
end
到目前為止,我在功能文件上遇到了問題,並且能夠從主文件中輸出它。 我認為變量sn存在問題,我不確定如何解決此問題。
問題出在for循環的語法中:
k=1:1:n
代替
k:1:1:n
為了完整起見,值得一提的是,如果步驟為1,則可以輕松省略此步驟。 所以指令
k=1:1:n
是相同的
k=1:n
另外,根據給定的規范(第二張幻燈片),第二個fprintf()
應被更正。 這樣的規格說明:
xbar
必須有4個小數位,並且%.4f
是正確的 r
必須是整數,因此%.4f
不正確。 您需要%d
整數 sn
應該是有6個小數位的浮點,但是%.2f
將顯示只有2個小數位的浮點。 請改用%.6f
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.