matlab中如何將字串轉換為命令控制字

2021-03-05 09:20:22 字數 5862 閱讀 8181

1樓:匿名使用者

eval()這個函式滿足你的要求。

如:str1=『set(text1,「string」,a(1))』;

eval(str1);

相當於執行了這個語句。

2樓:

請問你這裡的text1是什麼?物件?普通變數?物件的handle?

你在引用text1之前,text1是否已經存在?

3樓:楊好巨蟹座

字 符 串 轉 換

abs字串到ascii轉換

dec2hex

十進位制數到十六進位制字串轉換

fprintf

把格式化的文字寫到檔案中或顯示屏上

hex2dec

十六進位制字串轉換成十進位制數

hex2num

十六進位制字串轉換成ieee浮點數

int2str

整數轉換成字串

lower

字串轉換成小寫

num2str

數字轉換成字串

setstr

ascii轉換成字串

sprintf

用格式控制,數字轉換成字串

sscanf

用格式控制,字串轉換成數字

str2mat

字串轉換成一個文字矩陣

str2num

字串轉換成數字

upper

字串轉換成大寫

在許多情況下,希望把一個數值嵌入到字串中。幾個字串轉換可完成這個任務。

» rad=2.5; area=pi*rad^2;

» t=[' a circle of radius ' num2str(rad) ' has an area of ' num2str(area) ' . ' ] ;

» disp(t)

a circle of radius 2.5 has an area of 19.63.

這裡函式num2str用來把數值轉換成字串,字串連線用來把所轉換的數嵌人到一個字串句子中。按類似方式,int2str把整數轉換成字串。無論是num2str還是int2str都呼叫函式sprintf,它用類似c語言語法把數值轉換成字串。

函式fprintf經常是函式disp的一個有用替換,由於它提供了對結果更多的控制。當準備把格式化的資料寫到一個檔案中去時,按預設它在命令視窗顯示結果。例如,

» fprintf(' see what this does ')

see what this does»

» fprintf(' see what this does\n ')

see what this does

在上面第一個例子裡,fprintf顯示字串,然後立即給出matlab提示符。相反,在第二個例子裡,\n 插入一個新行字元,在matlab提示符出現之前建立一個新行。

無論fprintf還是sprintf以同樣方式處理輸入參量,但fprintf把輸出送到顯示屏或檔案中,而sprintf把輸出返回到一個字串中。例如,上面的例子用num2str可重寫為

» t=sprintf(' a circle of radius %.4g has an area of %.4g. ', rad, area);

» disp(t)

a circle of radius 2.5 has an area of 19.63.

» fprintf(' a circle of radius %.4g has an area of %.4g.\n ' , rad, area)

a circle of radius 2.5 has an area of 19.63.

這裡%.4g是用在函式num2str中的資料格式。%.

4g就是用指數或定點標記,不管哪一種更短些,只顯示至4位數字。除了g格式,還可用e (指數)和f (定點)轉換。表6.

2表明在各種不同轉換下,如何顯示pi結果。

表6.2

數 值 格 式 轉 換 例 子

命令結果

fprintf(' %.0e\n ',pi)

3e+00

fprintf(' %.1e\n ',pi)

3.1e+00

fprintf(' %.3e\n ',pi)

3.142e+00

fprintf(' %.5e\n ',pi)

3.14159e+00

fprintf(' %.10e\n ',pi)

3.1415926536e+00

fprintf(' %.0f\n ',pi)

3fprintf(' %.1f\n ',pi)

3.1fprintf(' %.3f\n ',pi)

3.142

fprintf(' %.5f\n ',pi)

3.14159

fprintf(' %.10f\n ',pi)

3.1415926536

fprintf(' %.0g\n ',pi)

3fprintf(' %.1g\n ',pi)

3fprintf(' %.3g\n ',pi)

3.14

fprintf(' %.5g\n ',pi)

3.1416

fprintf(' %.10g\n ',pi)

3.141592654

fprintf(' %.8.0g\n ',pi)

3fprintf(' %.8.1g\n ',pi)

3fprintf(' %.8.3g\n ',pi)

3.14

fprintf(' %.8.5g\n ',pi)

3.1416

fprintf(' %.8.10g\n ',pi)

3.141592654

注意,對e 和f 格式,小數點右邊的十進位制數就是小數點右邊要顯示的多少位數字。相反,在g 的格式裡,小數點右邊的十進位制數指定了顯示數字的總位數。另外,注意最後的五行,其結果指定為8個字元長度,且是右對齊。

在最後一行,8被忽略,因為指定超過了8位。

概括起來,當需要比預設函式disp,num2str和int2str所提供的更多的控制時,fprintf和sprintf是有用的。

函式str2mat把一列的幾個字串轉換成一個字串矩陣。例如,

» a=' one ' ; b= ' two ' ; c= ' three ' ;

» disp(str2mat(a, b, c, ' four '))

o***wothree

four

從上面看不明顯,上面的每行有同樣數目的元素。較短行用空格補齊,使結果形成一個有效的矩陣

在逆方向轉換中,有時是很方便的。

» s= ' [1 2; pi 4] ' % a string of a matlab matrix

s =[1 2; pi 4]

» str2num(s)

ans =

1.0000 2.0000

3.1416 4.0000

» s=' 123e+5 ' % a string containing a ****** number

s =123e+5

» str2num(s)

ans =

12300000

函式str2num不能接受使用者定義的變數,也不能執行轉換過程的算術運算。

pcolor(x,y,c)函式的用法: x,y是用來定位的,c是用來填充顏色的。

當x,y是向量時,x與c的列對應,y與c的行對應,因此向量x和y的維數必須要求與c的列與行統一。所以使用時注意檢查x,y,c的大小和維數。

其後面最好用上函式:shading interp;

matlab中怎麼把字串轉化為函式

4樓:武陵笑天

查詢一下matlabfunction吧。軟體中的例子:

syms mu x y

vdp = [y; mu*(1-x^2)*y-x];

%生成vdp字元表示式。

matlabfunction(vdp,'file','vdp2','vars',[x y mu],'outputs',);%將字元表示式自動生成函式。

type vdp2

function ***t = vdp2(x,y,mu)%vdp2

% ***t = vdp2(x,y,mu)***t = [y;- x - mu.*y.*(x.^2 - 1)];

5樓:匿名使用者

可以用eval函式,比如eval('y=x+3');執行的就是y=x+3的命令

matlab如何將一個字串轉化為一個變數名? 50

6樓:重歸於好

eval([a '=b;'])

可以原bai汁原味b賦值du給a所儲存變數名zhi,沒有任何精度損失,且dao

適用於任意數回據型別。

連續load,每改答變file_name

for i = 1:13

name = ['data1_al_',num2str(i),'__u'];

load name;

% your code;

load用eval(s)執行順便賦值(s命令列)比c/c++簡單很多,直接一個命令列搞定,如下: >> str = 'abc' str = abc

7樓:匿名使用者

樓上來的回答欠妥。源

用eval函式沒錯,但按照樓bai上的用法,適du應性很差,比如b是其它資料類zhi型的dao,例如struct或cell之類的呢?而且使用num2str這類函式本身還存在有效數字導致的精度損失問題。

其實正確的用法非常簡單:

eval([a '=b;'])

可以原汁原味的把b賦值給a所儲存的變數名中,沒有任何精度損失,且適用於任意資料型別。

8樓:匿名使用者

a='aea';

b=1;

eval([a,'=',num2str(b)])

【matlab】如何將輸入字串轉換成函式?

9樓:天雲一號

可以用eval函式,比如eval('y=x+3');執行的就是y=x+3的命令

matlab怎樣實現數字和字元的轉換

10樓:大野瘦子

數字轉字串:

template

static std::string num2str(t v)字元向字元轉換:

a=str2num('3'),得到a=3

字串和數字之間的相互轉換總結

可以使用的函式stoi(),stod(),stoll()等舉例:

string str = "3.1415926";

cout

cout<符串轉數字:使用sscanf()函式,舉例如下:

char str="1234321";

int a;

sscanf(str,"%d",&a);

/////////////////////////////char str="123.321";

double a;

sscanf(str,"%lf",&a);

////////////////////////////char str="af";

int a;

sscanf(str,"%x",&a); //16進位制轉換成10進位制使用stringstream,舉例如下:

string s = "17";

stringstream ss;

ss

ss>>i;

cout<

C 字元轉數字問題,c 如何將字串轉換為數字?

public string convertstring string value,int frombase,int tobase int intvalue frombase return tobase 各種型的數字之間的轉換,引數 value 傳入的值,frombase 傳入的型別,tobase需要...

spss軟體如何將字串轉換成數值

選擇 轉換 自動重新編碼 會根據字串的不同自動編碼為數字。用轉換函式number x,n 試試 recode命令即可 spss 中如何將字元型變數轉變為數值型變數?10 為什麼不用全自動方案呢,選擇 轉換 自動重新編碼 軟體會新建一個變數,根據字串的不同進行不同編碼,轉換為不同數字。比較快的方法是 ...

c中分割字串的幾種方法,C 中如何將字串一個一個字元拆分出來操作?

1 如果字串格式為 string str abc def hijkl mn string s str.split new char 結果就是 s 0 abc s 1 def s 2 hijkl s 3 mn 2 如果是單純的字串擷取就簡單了,比如 string str abcdefg string ...