matlab中num2str的應用 轉)

2021-08-25 11:15:28 字數 2882 閱讀 4917

在求導數,積分,方程的過程中,難免會遇到一些引數要隨著情況有點變化,這時,你就需要能夠動態的表示出你的表示式,num2str函式是乙個相當有用的函式,一般配合連線符使用,下面將我接觸到的一些用法寫出來。

1 用於求導數的表示式,函式x^2 – y^p + y^t,pt為數值,可以跟隨程式的不同被賦予不同的值。 diff([『x^2 – y^』 num2str(p) 『+y^』 num2str(t), x])

2 用於求解積分用法同上,把被積函式表示出來就可以了。 int([『x^2 – y^』 num2str(p) 『+y^』 num2str(t), x, a,b])

3 用於求解方程或微分方程 solve([『x^2 – x^』 num2str(p) 『+x^』 num2str(t)],x) dsolve([『dx^2 – x^』 num2str(p) 『+x^』 num2str(t)], x)

4 如果你要執行一些大的演算法,涉及到了迴圈,你不防試試下面的方法,提示程式的進度。這個是我在做monte carlo時的乙個收穫。 plot(...)任意的繪圖, text(x, y , ['monte carlo number=' num2str(mc) '/' num2str(nmc)])將這個語句寫在迴圈體的內部。

5 在儲存影象的時候用到動態的給檔案起名的時候,也可以用這個語句。檔名[『file』 num2str(i) 『.bmp』]i為迴圈計數名。

1.strcat

連線字串的函式

一、例:

a = 'hello '

b = 'goodbye'

strcat(a, b)

ans =

hellogoodbye

二、注意:

①在同一行輸出

②strcat聯接的兩個string都是直接連在一起的,中間不能加入空格。不過可以在定義字元時,在字元中加空格

三、tictoc

matlab連線字串用strcat好,還是用 [ ] 好?

clear all;

close all

tic;

for i = 1:100

['hello', num2str(i)];

endt1 = toc;

close all;

clear all;

t = tic;

for i = 1:100

strcat('hello', num2st(i));

endt2  = toc;

t1 = 0.0229

t2 = 0.0555

**********************************由此可見,[ ] 執行的效率要比strcat高一些。因為strcat 內部需要做一些預處理和其他的資料型別,比如cell。

2.num2str

函式功能: 

把數值轉換成字串, 轉換後可以使用fprintf或disp函式進行輸出。在matlab命令視窗中鍵入doc num2str或help num2str即可獲得該函式的幫助資訊。

語法格式:

str = num2str(a)

把陣列a中的數轉換成字串表示形式。

str = num2str(a, precision)

把陣列a轉換成字串形式表示,precision表示精度, 比如precision為3表示保留最多3位有效數字, 例如0.5345轉換後為0.534,1.2345轉換後為1.23。即從左邊第乙個不為0的數開始保留3個數值。

str = num2str(a, format)

按format指定格式進行格式化轉換,通常'%11.4g'是預設的。

相關函式: 

mat2str, int2str, str2num, sprintf, fprintf

應用舉例:

>> a = [1, 2, 3];

>> b = num2str(a);

>> fprintf('%s', b)

1 2 3>>

>> c = [1.564, 0.12345];

>> d = num2str(c, 3)

d =1.56 0.123

>> d = int32(1)

d =1

>> num2str(d, '%.6f')

ans =

1.000000

3.num2str應用

在求導數,積分,方程的過程中,難免會遇到一些引數要隨著情況有點變化,這時,你就需要能夠動態的表示出你的表示式,num2str函式是乙個相當有用的函式,一般配合連線符使用,下面將我接觸到的一些用法寫出來。

1 )用於求導數的表示式,函式x^2 – y^p + y^t,pt為數值,可以跟隨程式的不同被賦予不同的值。 diff([『x^2 – y^』 num2str(p) 『+y^』 num2str(t), x])

2) 用於求解積分用法同上,把被積函式表示出來就可以了。 int([『x^2 – y^』 num2str(p) 『+y^』 num2str(t), x, a,b])

3 )用於求解方程或微分方程 solve([『x^2 – x^』 num2str(p) 『+x^』 num2str(t)],x) dsolve([『dx^2 – x^』 num2str(p) 『+x^』 num2str(t)], x)

4) 如果你要執行一些大的演算法,涉及到了迴圈,你不防試試下面的方法,提示程式的進度。這個是我在做monte carlo時的乙個收穫。 plot(...)任意的繪圖, text(x, y , ['monte carlo number=' num2str(mc) '/' num2str(nmc)])將這個語句寫在迴圈體的內部。

5 )在儲存影象的時候用到動態的給檔案起名的時候,也可以用這個語句。檔名[『file』 num2str(i) 『.bmp』]i為迴圈計數名。

例項:obsfile = strcat(obspath,num2str(msta(ista)),'a.txt');

matlab中num2str函式用法

1 num2str 把數值轉換成字串,轉換後可以使用fprintf或disp函式進行輸出。2 用法說明 1 str num2str a 把陣列a中的數轉換成字串表示形式。2 str num2str a,precision 把陣列a轉換成字串形式表示,precision表示精度,比如precision...

Matlab中num2str函式的用法

函式功能 把數值轉換成字串,轉換後可以使用fprintf或disp函式進行輸出。在matlab命令視窗中鍵入doc num2str或help num2str即可獲得該函式的幫助資訊。語法格式 str num2str a 把陣列a中的數轉換成字串表示形式。str num2str a,precision...

關於num 2的問題

首先我們先來 一下這個結果,大概很多同志都會思考一下,然後覺得是201吧 其實我一開始也是這麼覺得的,但是大多數往往是錯的,捂臉 首先我是使用的cb,預設的gcc編譯器,gdb32除錯。直接讓我們來看看除錯結果!換個方式看看吧 由此可見,運算子建立了乙個新的執行變數 新的記憶體位址 但是乘法並沒有,...