求助關(guān)于Matlab中字符串的轉(zhuǎn)化問題
各位大哥大姐
老師給了小弟一個事兒做,需要用Matlab編程序,但是小弟一開始就遇到了麻煩,這個工作需要把字符串轉(zhuǎn)化為可計算的數(shù)值,比如以下三組字符串?dāng)?shù)據(jù)(設(shè)為“B”)
'12-04-2010 09:23:30 31 9.982 v'
'12-04-2010 09:23:30 32 2.003 v'
'12-04-2010 09:23:30 33 -10.098 i'
我想從其中提出來兩組矩陣,一組是
9.982
2.003
-10.098
另一組是函數(shù)(注意,這里不再是字符串了,需要把v和i轉(zhuǎn)化為函數(shù))
v
v
i
不知道我該用什么命令呢?
請各位大俠不吝賜教
返回小木蟲查看更多
今日熱帖
京公網(wǎng)安備 11010802022153號
各位大俠幫幫忙吧
建議你用EXCEl分列直接取出來最方便。非要編程的話,如果數(shù)據(jù)格式統(tǒng)一,比如尋找每個字符串中倒數(shù)第2個空格和最后一個空格之間的內(nèi)容,得到'9.982','2.003','-10.098',然后用str2double將其轉(zhuǎn)換為數(shù)字。
對于將v,i用函數(shù)替換查找出來后直接換就可以了。
B={'12-04-2010 09:23:30 31 9.982 v'
'12-04-2010 09:23:30 32 2.003 v'
'12-04-2010 09:23:30 33 -10.098 i'};
for i=1:length(B)
a=B{i};
t=find(a==' ');
data1=a(t(end-1):t(end));
data(i)=str2double(data1);
if (a(end))=='v'
data2(i)=sin(data(i));
elseif (a(end))=='i'
data2(i)=cos(data(i));
end
end
data'
data2'
ans =
9.9820
2.0030
-10.0980
ans =
-0.5288
0.9080
-0.7818
不知道你說的函數(shù)是什么意思,給了個例子,v的時候算sin,i的時候算cos,
求助完畢,請版主關(guān)閉此帖