『壹』 matlab 轉換cell 到char 然後在把char轉換成數字。
用textscan整體讀入,由於名字中間會有個空格,所以得到的名字會分開為兩個版單元,後面處理也權挺麻煩的
下面給個用fgetl一行行讀取文件內容的代碼
fid=fopen('sample.txt');
t=fgetl(fid);
studentnum=str2num(t);
t=fgetl(fid);
subjectnum=str2num(t);
forii=1:studentnum
t=fgetl(fid);
student(ii).number=str2num(t);
t=fgetl(fid);
student(ii).name=t;
score=0;
forjj=1:subjectnum
t=fgetl(fid);
score=score+str2num(t);
end
student(ii).score=score;
end
fclose(fid);
『貳』 matlab 怎麼刪除符號矩陣中的逗號,我的符號矩陣<495x708char>,每一行都是 數字1,數字2,數字3,。。
給你一個例子
A=['12' ',' '54' ',' '59';
'52' ',' '51' ',' '53']
str2num(A)
可以看出把字元串轉化為數值時,自動的刪除了都逗號
『叄』 matlab中的如何把char轉換為double
a=['45 33 4 3 2 1'];a1=str2double(a)
a1 =
NaN
>> a2=str2num(a)
a2 =
45 33 4 3 2 1
>> class(a1)
ans =
double
>> class(a2)
ans =
double
以上說明,str2num就把char類回轉換為答double類
『肆』 Matlab裡面char函數在轉換是遇到數字怎麼處理呢,比如我讀取了一個txt文
直接就是數字了或者有可能按照ascii值來轉換
『伍』 matlab怎樣實現數字和字元的轉換
數字轉字元串:
template <typename T>
static std::string num2str(T v)
{
std::ostringstream oss;
oss << v;
return oss.str();
}
字元向字元轉換:
a=str2num('3'),得到a=3
字元串和數字之間的相互轉換總結
可以回使用的函數stoi(),stod(),stoll()等舉例答:
string str = "3.1415926";
cout<<str<<endl;
double d = stod(str);
cout<<d<<endl;
符串轉數字:使用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<<s;
int i;
ss>>i;
cout<<i<<endl; // 17
『陸』 用matlab 提取字元串中的數字。
S = REGEXP(STRING,EXPRESSION)
其中EXPRESSION的取法為:
. Any character
[] Any character contained within the brackets
[^] Any character not contained within the brackets
\w A word character [a-z_A-Z0-9]
\W Not a word character [^a-z_A-Z0-9]
\d A digit [0-9]
\D Not a digit [^0-9]
\s Whitespace [ \t\r\n\f\v]
\S Not whitespace [^ \t\r\n\f\v]
那麼你的問題就可以使用下面的代碼了
>>a='5000.xls'
a =
5000.xls
>> s=a(regexp(a,'\d'))
s =
5000
這時的s是字元型的,如果你需要數字的話就是用str2num轉化一下
祝你學習愉快!
『柒』 Matlab中用char把漢字轉換成數值型後,多個漢字無法同時放到舉證的一個元素里
那就試試把數值型轉化為cell型的看看,再合起來試試吧!
『捌』 請問matlab裡面如何區分A是數字還是字元串
>> x='2';y=2;>> ischar(x)ans = 1>> ischar(y)ans = 0>> isnumeric(x)ans = 0>> isnumeric(y)ans = 1>> class(x)ans =char>> class(y)ans =double>> whos x y Name Size Bytes Class Attributes x 1x1 2 char y 1x1 8 double >> isa(x,'char')ans = 1>> isa(y,'char')ans = 0>> isa(x,'numeric')ans = 0>> isa(y,'numeric')ans = 1>>
『玖』 matlab char中的字母轉化為數值
這就要你自己規定了比如寫一回個函數:答
functionnum=str2number(CHR)
switchCHR
case('TT')
num=0;
case('TC')
num=1;
case('CC')
num=2;
end
end
『拾』 matlab 字元轉變成數字
str2num 函數不能轉換字元串或元胞數組,而且它對 + 和 - 運算符前後的空格敏感。
X = str2num(chr) 將字元數組轉換為數值矩陣。輸入可以包含空格、逗號和分號,以指示單獨的元素。如果 str2num 不能將輸入解析為數值,則返回空矩陣。
此外,str2num 使用 eval 函數,當輸入包含函數名稱時,此函數可能會產生意外的副作用。為了避免這些問題,請使用 str2double函數。
想正確轉換代碼如下:
str2num('918')
(10)我matlabchar過濾數字擴展閱讀:
X = str2double(str) 將 str 中的文本轉換為雙精度值。
str 包含表示實數或復數值的文本。str 可以是字元向量、字元向量元胞數組或字元串數組。如果 str 是字元向量或字元串標量,則 X 是數值標量。如果 str 是字元向量元胞數組或字元串數組,則 X 是與 str 具有相同大小的數值數組。
表示數值的文本可以包含數字、逗號(千位分隔符)、小數點、前導 + 或 - 符號、以 10 為縮放因子的冪前面的 e 以及復數單位的 i 或 j。不能使用句點作為千位分隔符或使用逗號作為小數點。
如果 str2double 不能將文本轉換為數值,則它將返回 NaN 值。