簡體   English   中英

Matlab算法和輸出文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM