当前位置: 首页 > 仿真模拟 >求助关于Matlab中字符串的转化问题

求助关于Matlab中字符串的转化问题

作者 华丽的飘过
来源: 小木虫 200 4 举报帖子
+关注

各位大哥大姐

老师给了小弟一个事儿做,需要用Matlab编程序,但是小弟一开始就遇到了麻烦,这个工作需要把字符串转化为可计算的数值,比如以下三组字符串数据(设为“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
另一组是函数(注意,这里不再是字符串了,需要把v和i转化为函数)
v
v
i

不知道我该用什么命令呢?

请各位大侠不吝赐教 返回小木虫查看更多

今日热帖
  • 精华评论
  • 华丽的飘过

    各位大侠帮帮忙吧

  • csgt0

    建议你用EXCEl分列直接取出来最方便。非要编程的话,如果数据格式统一,比如寻找每个字符串中倒数第2个空格和最后一个空格之间的内容,得到'9.982','2.003','-10.098',然后用str2double将其转换为数字。
    对于将v,i用函数替换查找出来后直接换就可以了。

  • csgt0

    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


    不知道你说的函数是什么意思,给了个例子,v的时候算sin,i的时候算cos,

  • 华丽的飘过

    求助完毕,请版主关闭此帖

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓