在求導數,積分,方程的過程中,難免會遇到一些引數要隨著情況有點變化,這時,你就需要能夠動態的表示出你的表示式,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除錯。直接讓我們來看看除錯結果!換個方式看看吧 由此可見,運算子建立了乙個新的執行變數 新的記憶體位址 但是乘法並沒有,...