精华内容
下载资源
问答
  • MATLAB字符串数组中查找指定子串

    万次阅读 2014-11-12 16:14:29
    1. strfind Find one string within another Syntax k = strfind(str, pattern); ...2. 如果使用的cell并且比较麻烦,可以自己写查找函数 id = zeros(0,1); for i=1:size(txt,1)
    1. strfind

    Find one string within another Syntax

    k = strfind(str, pattern);
    k = strfind(cellstr, pattern);


    2. 如果使用的cell并且比较麻烦,可以自己写查找函数

    id = zeros(0,1);
    for i=1:size(txt,1)
        if strcmp(txt{i},'str')
            id(end+1) = i;
        end
    end


    展开全文
  • 一个matlab函数,可以实现类似 C 语言 strcmp 的功能、数字矩阵转字符串或元胞矩阵、查找一个字符串字符串矩阵或元胞矩阵的索引

    1、字符串比较

    今天遇到一个问题,想用Matlab比较两个字符串的大小,以为用>、<、==即可,谁知道这些比较符号返回的是一个逻辑矩阵(并且一般还要求两个字符串长度一致),在网上搜了下说加all()、any()即可。确实,all的意思是 【所有的都】,any的意思是【只有一个就】,但是不能判断谁大谁小,matlab自带的strcmp只能判断两个字符串是否相等(相等为真,否则为假),也不能判断谁大谁小,偶然发现一个前辈写了个函数,这个函数的功能类似于C语言中的strcmp:

    • str1>str2, return 1
    • str1==str2, return 0
    • str1<str2, return -1

    做点摘抄,以防下次再次入坑,函数如下:

    function p=mstrcmp(str1,str2)
    k=min(length(str1),length(str2));
    for n=1:k   %Compare the top k
        if(str1(n)>str2(n))
            p=1;break;
        elseif(str1(n)==str2(n))
            p=0;
        else p=-1;break;
        end
    end
    if(p==0)
        if(length(str1)>length(str2)) %The first k bits are equal, but str1 is longer
            p=1;
        elseif(length(str1)==length(str2))
            p=0;
        else p=-1;
        end
    end
    end
    

    2、数字矩阵转字符串(元胞)矩阵

    补于2021.3.23
    字符串矩阵

    function satlist=num2sat_char(sys,num)
    %this function can trans numList to charSatList
    satlist=[];
    for i=num
        satlist=[satlist;sys,num2str(i,'%02d')];
    end
    end
    

    元胞矩阵

    function satlist=num2sat_cell(sys,num)
    %this function can trans numList to cellSatList
    satlist={};
    for i=num
        satlist=[satlist,cellstr([sys,num2str(i,'%02d')])];
    end
    end
    

    3、查找位置

    补于2021.3.23

    1 字符串矩阵

    function prn=find_sat_char(satlist,sat)
    %this function can find the sat index from a charSatList
    n=size(satlist,1);
    prn=0;
    for i=1:n
        if mstrcmp(satlist(i,:),sat)==0
            prn=i;
            break;
        end
    end
    end
    
    function satlist=num2sat_char(sys,num)
    %this function can trans numList to charSatList
    satlist=[];
    for i=num
        satlist=[satlist;sys,num2str(i,'%02d')];
    end
    end
    
    function p=mstrcmp(str1,str2)
    %this function can strcap two str(>1 =0 <-1)
    k=min(length(str1),length(str2));
    for n=1:k   %Compare the top k
        if(str1(n)>str2(n))
            p=1;break;
        elseif(str1(n)==str2(n))
            p=0;
        else p=-1;break;
        end
    end
    if(p==0)
        if(length(str1)>length(str2)) %The first k bits are equal, but str1 is longer
            p=1;
        elseif(length(str1)==length(str2))
            p=0;
        else p=-1;
        end
    end
    end
    

    调用

    num=[1:3,5:32];
    sys='G';
    satlist=num2sat_char(sys,num);
    sat='G30';
    prn=find_sat_char(satlist,sat) %29
    sat='G0';
    prn=find_sat_char(satlist,sat) %0 can't find
    

    ps:一看就知道我搞卫星的。

    2 元胞矩阵

    function p=mstrcmp(str1,str2)
    %this function can strcap two str(>1 =0 <-1)
    k=min(length(str1),length(str2));
    for n=1:k   %Compare the top k
        if(str1(n)>str2(n))
            p=1;break;
        elseif(str1(n)==str2(n))
            p=0;
        else p=-1;break;
        end
    end
    if(p==0)
        if(length(str1)>length(str2)) %The first k bits are equal, but str1 is longer
            p=1;
        elseif(length(str1)==length(str2))
            p=0;
        else p=-1;
        end
    end
    end
    
    function satlist=num2sat_cell(sys,num)
    %this function can trans numList to cellSatList
    satlist={};
    for i=num
        satlist=[satlist,cellstr([sys,num2str(i,'%02d')])];
    end
    end
    
    function prn=find_sat_cell(satlist,sat)
    %this function can find the sat index from a cellSatList
    n=length(satlist);
    prn=0;
    for i=1:n
        if mstrcmp(satlist{i},sat)==0
            prn=i;
            break;
        end
    end
    end
    

    调用

    num=[1:3,5:32];
    sys='G';
    satlist=num2sat_cell(sys,num);
    sat='G30';
    prn=find_sat_cell(satlist,sat)  %29
    sat='G0';
    prn=find_sat_cell(satlist,sat)  %0
    
    展开全文
  • MATLAB字符串学习笔记

    2018-08-15 17:04:54
    MATLAB字符串  在使用MATLAB时经常会遇到对字符或字符串的操作。本章将对MATL AB的字符串函数进行详细的介绍。字符串是指1X n的字符数组。  在MATLAB软件提供了很多的字符或字符串操作方法和函数,包括字符串...

    MATLAB字符串

     在使用MATLAB时经常会遇到对字符或字符串的操作。本章将对MATL AB的字符串函数进行详细的介绍。字符串是指1X n的字符数组。

      在MATLAB软件中提供了很多的字符或字符串操作方法和函数,包括字符串的创建、字符串的属性、比较、查找以及字符串的转换和执行等。

    字符串处理函数

    在MATLAB中,单个字符是按照Unicode编码存储的,每个字符占两个字节。MATL.AB内部按照字符的编码数值对字符串进行运算。字符和字符串是MATLAB语言的重要组成部分,MATLAB提供了强大的字符串处理功能,下面对常用的字符串处理函数进行详细的介绍。

    字符串基本属性

      在MATLAB中,对字符串的设定非常的简单,只需要用单引号(')将需要设定的字符串括起来。

    通过函数disp():对字符串进行显示。

    通过函数size( ): 取得该字符串的长度。

    通过函数double( ):将字符串以ASCI|码显示。

    通过函数char( ):  将ASCII码以字符串显示。

    字符串的构造

    在MATLAB中,创建字符串非常的简单,将字符串中的字符放到一对单引号之间即可。该单引号必须是在英文状态下输入的。多个字符串可以构成字符矩阵,但是矩阵的每行字符数必须相等。

    函数strcat( )和函数strvcat( )对字符串进行连接。

    函数strcat()将多个字符串连接成行向量,字符串首尾连接在一起,  形成一个新的字符串。

    函数strvcat( )将多个字符串连接成列向量。

    字符串的比较

    在MATLAB中,对两个字符串进行比较采用函数strcmp( )和函数strncmp(),‘下 面分别进行介绍:

    函数strcmp( )的调用格式为n=strcmp(str1, str2),  该函数比较字符串str1和字符串str公是否相等,如果相等,函数返回值为1;当不相等时,返回值为0。

    函数strncmp( )的调用格式为n=strncmp(str1, str2, k),该函数比较字符串str1和字符串str2的前k个字符是否相等。如果相等,返回值为1;当不相等时,返回值为0。该函数区分字符的大小写。

    函数strncmpi( )的调用格式为n=strncmpi(str1, str2, k),和函数strncmp( )基本-样。该函数和函数strncmp( )的不同之处是,该函数不区分字符的大小写。

    字符串的查找和替换

    字符串的查找和替换时字符串操作的一项重要内容,在MATLAB中提供了函数findstr( )(这个函数在有可能会被去掉,不建议使用)、strfind( )、和strrep()等函数来实现对字符串的查找和替换操作。

    findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。

    函数strfind( )的调用格式为k=strfind(text, pattern),在text字符串中查找pattern字符或字符串,当查找成功后返回第一个相同字符的具体位置。

    函数strrep( )的调用格式为S=strrep(S1, S2, S3),  该函数会将字符串S1中的子串S2都替换为S3,然后返回到字符串S中。

    字符串的转换

      在MATL AB中,  可以使用函数num2str( )、int2str( )、

      str2num( )和str2double( )等实现字符串和数值之间的相互转换。下面分别进行介绍:

      函数t=num2str(X):函数将数字X转换为字符串t。如果输入参数X为矩阵,  则转换为一一个字符串矩阵。该函数也可以指定数字的精度,调用格式为t=num2str(X, n),其中t的精度为n位。

      函数t= int2str(X),  该函数将整数X转换为字符串。如果X不是整数,先将X取整,然后再转换为字符串。

      函数x=str2num(S),该函数将字符型矩阵S转换为-一个数字矩阵。

      函数x=str2double(S),该函数将字符串转换为双精度的数值。

      函数str=mat2str(mat),该函数将数组或矩阵转换为对应的字符串。

    t1=num2str(randn(3,3)*100)      %将数字转换为字符串

    pi=num2str(pi,6)                %只显示6位

    t2=int2str(randn(3,3))          %先取整,然后转换为字符串

    x1=str2num(t2)                  %将字符串矩阵转换为数字矩阵

    x2=str2double('123+45i')        %将字符串转换为双精度数值

    str=mat2str(magic(3))           %将矩阵转换为字符串

    b=dec2bin(254)          %将十进制数转换为二进制

    h=dec2hex(234)          %将十进制数转换为十六进制

    d1=hex2dec('2B')        %将十六进制转换为十进制

    d2=bin2dec('1000101')   %将二进制转换为十进制

    字符的分类

    在MATLAB中,字符串中的字符通常可以分为空白字符、字母字符和其他类型的字符。可以通过函数isspace()和函数isletter( )对字符串中的字符进行分类。下 面分别进行介绍:

    函数isspace(S):字符串S进行分类,如果为空白字符,返回值为1,;  否则返回值为0;

    函数isletter(S),对字符串S进行分类,如果为字母字符, 返回值为M;否则返回值为0。

    这两个函数是对每一个字母进行判断

    字符串的执行

    MATLAB表达式可能包含在字符串中,‘下面详细介绍如何执行这些包含在字符串中的表达式。在MATLAB中提供了三个 函数eval( )、evalc( )和evalin( ),可以执行字符串中包含的MATLAB程序。

    函数eval( )的调用格式为:  eval('expression'):在该函数中expression为包含MATLAB表达式的字符串。

    其他操作

    在MATLAB中通过函数upper( )可以将字符串转换为大写字母。

    函数lower( )将字符串转换为小写字母。

    利用函数ischar()判断是否为字符,如果为字符则返回值为1,  否则返回值为0。

    在MATLAB的命令窗口,输入命令“help strfun”,可以显示所有的字符串操作函数。

    展开全文
  • matlab开发-查找编号字符串。查找字符串中的Flaoting点数,包括:复数、实数、整数和货币(美元)。
  • 1、函数功能: findstr(s1, s2):返回短字符串在长字符串中的位置。 strrep(s1, s2, s3):将字符串s1中所有子字符串s2替换为s3。...findstr(s1,s2) %查找短字符串在长字符串中的位置,s1、s2位置可互换 s3 = s...

    1、函数功能:

    findstr(s1, s2):返回短字符串在长字符串中的位置。

    strrep(s1, s2, s3):将字符串s1中所有子字符串s2替换为s3。

    2、代码示例:

    clc;
    clear all;
    
    s1 = 'mmmatlabmatlab';
    s2 = 'mat';
    findstr(s1,s2)    %查找短字符串在长字符串中的位置,s1、s2位置可互换
    
    s3 = strrep(s1,s2,'MAT')    %将s1中的mat替换成MAT,并存储到s3中

    运行结果:

    ans =

         3     9


    s3 =

    mmMATlabMATlab

    展开全文
  • matlab开发-查找字符串文本文件。在文本文件搜索字符串
  • matlab : R2018a 64bit      OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clear clc a='abcdefg' strfind...
  • 单引号引起来: 字符串矩阵 ...matlab字符串小写大写转换 eval函数:使得表达式执行 字符串比较 (1)利用关系运算符比较 (2)利用strcmp函数 字符串的查找与替换 例子:
  • 在Python字符串是由0个或多个字符组成的不可变序列。简单点说,字符串就是由⼀对双引号 " 或者 ⼀对单引号 ' 括起来的一串字符。01字符串的定义1)双引号定义>>> str1 = "人生苦短,我用Python">>&...
  • 1.字符串的比较:字符串的比较主要为比较两个字符串是否相同,字符串中的个别字符是否相同 strcmp(str1,str2) ——比较字符串1和字符串2是否一样 strncmp(str1,str2,n) ——比较字符串1和字符串2的前n个字符是否一样...
  • matlab截取字符串

    万次阅读 2015-07-02 10:50:19
    刚想截取一个matlab字符串中间的一段字符,网上搜了一下,发现strfind这个函数是matlab用来查找字符串中的字符的。 help strfind得到的结果: strfind Find one string within another. K = strfind(TEXT,PATTERN...
  • 题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之...
  • 怎样查找A中字符串的是否含有字符串"bd3",如有返回字符串所在的行号和列号。 解决办法 使用 strcmp(A,'YourKeyString') >> A = {'abcd','efgh','ijkl'; 'bd3','skge','zxe2'}[i,j] = fi...
  • 字符串处理 函数名 功能描述  strings Matlab字符串函数说明 upper 字符串大写 isstr 字符串判断 lower 字符串小写 deblank 删除结尾空格 isletter 字母判断 str2mat 字符串...
  • 替换空格题目:请实现一个函数,把字符串 s 的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000解题思路看到题目我们先想到最暴力的解法...
  • 测试空字符串和缺失值 ...因此,contains等函数始终会在其他字符串中查找空字符串。字符串数组还可以包含缺失值。字符串数组中的缺失值显示为<missing>。要查找字符串数组中的缺失值,请使用ismissing函数...
  • MATLAB(5)--字符串处理

    万次阅读 2020-07-29 23:55:16
    字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。 建立多行字符串,形成字符串矩阵,因为是矩阵,要求各行字符数要相等,也就是列数要相同,当各行字符数不相等时,就要用空格调节各行的长度,使...
  • 在规范编码、密码、用户名的时候,我们经常要查证某一类字符串是否包含数字、英文、数字与英文的组合,甚至字符串的开头是否是数字等。很简单,利用Code、Char、Find、Search文本函数搭配Count函数即可解决这个问题...
  • Matlab(7)——字符串处理 文章目录Matlab(7)——字符串处理一、字符串的表示二、字符串的...取子串:字符串变量名(m:n)若字符串中含有单引号,那么这个单引号要用两个单引号来表示 也可以建立多行字符串,形成字符...
  • 我们知道在字符串中寻找匹配的字符串可以用strfind() 和findstr() 两个函数,但是通过xlsread函数从Excel中导出的数据为元胞,这样就不能使用strfind函数了,这种情况下有两种办法。 1、用ismember()函数,这个...
  • MATLAB软件提供了很多的字符或字符串操作方法和函数,包括字符串的创建、字符串的属性、比较、查找以及字符串的转换和执行等。 在MATLAB中,单个字符是按照Unicode编码存储的,每个字符占两个字节。MATLAB内部...
  • 字符型数据1. 字符串的表示2. 字符串的操作1)字符串的执行2)字符串与数值间转换3)字符串的比较i. 关系运算符ii. 字符串比较函数4)字符串...若字符串中的字符含有单引号,则该单引号字符要用两个单引号表示 >&g
  • matlab ---字符串操作

    2018-02-19 21:51:12
    strcmp 字符串比较,后者忽略字母大小写 sscanf 格式化从字符串中读取数据 regexp,regexpi :匹配正则表达式,后者忽略大小写 regexprep 使用正则表达式替换字符串 regexptranslate 将私服穿转化为正则表达式** &...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

matlab字符串中查找

matlab 订阅