Matlab中disp,fprintf和sprintf有什麼區別

2022-03-02 08:02:40 字數 3910 閱讀 7682

1樓:匿名使用者

f=inline('x^2-7*x+10','x');

a=2;

b=8;

epsilon=0.25;

x1=b-0.618*(b-a);

f1=f(x1);

x2=a+0.618*(b-a);

f2=f(x2);

for k=1:7

fprintf(1,'迭代次數 k=%3.0f\n',k)if f1<=f2

b=x2;

x2=x1;

f2=f1;

x1=b-0.618*(b-a);

f1=f(x1);

else

a=x1;

x1=x2;

f1=f2;

x2=a+0.618*(b-a);

f2=f(x2);

endx=0.5*(b+a);

fprintf(1,'迭代區間-左端 a=%3.4f\n',a)fprintf(1,'試點1座標值 a=%3.4f\n',x1)fprintf(1,'函式值 f1=%3.

4f\n',f(x1))fprintf(1,'迭代區間-右端 b=%3.4f\n',b)fprintf(1,'試點2座標值 x2=%3.4f\n',x2)fprintf(1,'函式值 f2=%3.

4f\n',f(x2))fprintf(1,'區間中點 x=%3.4f\n',x)% disp''

end讓disp函式不工作,即可,不過看起來你這編的是0.618演算法。好像網上有源**

不過你這是控制迭代次數,下面我給了你控制迭代精度的**,希望對你有所幫助,

如果你喜歡我的回答,那就給個精華吧

clcclear all;

a=1; %區間下限

b=7; %區間上限

e=0.1; %精確度

f = inline('x^2-7*x+10');

%構造的目標函式

x1=a+0.382*(b-a);

y1=f(x1);

x2=a+0.618*(b-a);

y2=f(x2);

while abs(b-a)>e

if y1

b=x2;

x2=x1;

y2=y1;

x1=a+0.382*(b-a);

y1=f(x1);

else

a=x1;

x1=x2;

y1=y2;

x2=a+0.618*(b-a);

y2=f(x2);

endend

xp=0.5*(a+b); %算出目標值fp=f(xp);

2樓:

都是把格式好的字串輸出,只是輸出的目標不一樣:

1 printf,是把格式字串輸出到標準輸出(一般是螢幕,可以重定向)。

2 sprintf,是把格式字串輸出到指定字串中,所以引數比printf多一個char*。那就是目標字串地址。

3 fprintf, 是把格式字串輸出到指定檔案裝置中,所以引數筆printf多一個檔案指標file*。

回答不容易,希望能幫到您,滿意請幫忙採納一下,謝謝 !

matlab中disp,fprintf和sprintf有什麼區別

3樓:

disp用來直接顯示在命令列裡,非常輕量

sprintf和fprintf都用來生成格式化的字串,當然也可以直接接受沒有格式的字串

sprintf是s(tring)print f(ormat),也就是直接生成帶格式的字串的,通常並不直接用來顯示在命令列

fprintf是f(ile)printf(ormat),可以用來直接進行檔案的寫入,如果不指定檔案的fid那麼直接輸出到命令列

matlab中fprintf和disp的有多大的區別啊?

4樓:大野瘦子

區別很大,具體如下:

一、輸出的目標不一樣

disp用來直接顯示在命令列裡,非常輕量,fprintf是f(ile)printf(ormat),可以用來直接進行檔案的寫入,如果不指定檔案的fid那麼直接輸出到命令列。

二、用法不同

disp即display,可用來顯示字串、計算結果等。

例子:x= [1 2 3];

disp(['the values of x are: ', num2str(x)]);

結果顯示為:

the values of x are: 1  2  3

fprintf函式可以將資料按指定格式寫入到文字檔案中,也可以顯示字串、計算結果。

其呼叫格式為:

count = fprintf(fid, format, val1, val2, ...)

其中fid是我們要寫入資料檔案的檔案標識,format是控制資料顯示的字串。如果fid丟失,資料將寫入到標準輸出裝置(命令視窗)。 格式(format)字串指定佇列長度,小數精度,域寬和輸出格式的其他方面。

它包括文字數字字元(%)和字元序列(用於指定輸出資料顯示的精確格式)。

三、使用物件

想把字串pi=和變數pi的值顯示在一行上,試用disp(′pi=′,pi),回答這是非法的。這時應該用sprintf函式,它可把資料按要求的格式轉換為字串,再把它與需要顯示的字串組裝成一個長字串,使顯示格式非常靈活,人機介面更為友好,如鍵入:

st=sprintf(′ 圓周率pi= %8.5f′,pi);

disp(st)

結果為圓周率pi=3.14159

其中%為資料格式符,f表示十進位制浮點,8.5表示數字的長度為8位,小數點後5位,從%到f之間的字元都是不顯示的,它只指出顯示資料pi的格式,跟c的printf很相似。

5樓:匿名使用者

disp即display,可用來顯示字串、計算結果等 例子: x= [1 2 3];disp(['the values of x are: ', num2str(x)]);結果顯示為:

the values of x are: 1 2 3fprintf函式可以將資料按指定格式寫入到文字檔案中,也可以顯示字串、計算結果。其呼叫格式為:

count = fprintf(fid, format, val1, val2, ...) 其中fid是我們要寫入資料檔案的檔案標識,format是控制資料顯示的字串。如果fid丟失,資料將寫入到標準輸出裝置(命令視窗)。

格式(format)字串指定佇列長度,小數精度,域寬和輸出格式的其他方面。它包括文字數字字元(%)和字元序列(用於指定輸出資料顯示的精確格式)。例子:

fprintf('%6.4d\n',123) 顯示十進位制整數資料fprintf('%s\n','string') 顯示字元資料fprintf(1,'it''s friday.\n')結果顯示為:

it's friday.

6樓:匿名使用者

一樓二樓是正解,如果想多控制輸出的格式,推薦使用fprintf

7樓:匿名使用者

這個帖子不回對不起自己!我是不是太肉麻了!matlab技術論壇我來了!

matlab中disp,fprintf和sprintf有什麼區別

8樓:

都是把格式好的字串輸出,只是輸出的目標不一樣:

1 printf,是把格式字串輸出到標準輸出(一般是螢幕,可以重定向)。

2 sprintf,是把格式字串輸出到指定字串中,所以引數比printf多一個char*。那就是目標字串地址。

3 fprintf, 是把格式字串輸出到指定檔案裝置中,所以引數筆printf多一個檔案指標file*。

回答不容易,希望能幫到您,滿意請幫忙採納一下,謝謝 !

matlab中a什麼意思,matlab中a是什麼意思

賦值的意思 a 1 表示a的值是1 a hello 表示a的值是字串hello matlab中a 是什麼意思 5 a 是把矩陣a轉換為一個行向量,就是一行。例如 a rand 2,3 a 0.6925 0.3965 0.78020.5567 0.0616 0.3376 b a b 0.6925 0....

matlab中離散楔的原理,matlab中離散小波的原理

我感覺matlab離散的原理好像和書中的那些原理沒半毛錢關係?笑翻了,哇咔咔,你才發現啊?這是小波參考書的通病,也是容易讓人抓狂的難點,就是小波理論的示意性理解與實際實現演算法總是被混為一談,實際這兩者有時真的沒半毛錢關係都沒有,完全是兩個領域的問題。在matlab中cwt理論的理解是用你上面的第一...

matlab中如何程式設計序進去,matlab中的指令碼程式怎麼編寫?

matlab 程式的檔案 是以.m檔案的形式呈現的。將matlab 編寫進.m檔案內然後版 執行即可。例子 權 建立一個 helloworld.m 檔案內包括內容如下 fprintf hello world 使用快捷鍵f5直接執行,然後可以在控制檯下看到列印的 hello world 按你問的問題,...