Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String MATLAB有字符串的条带函数吗?_String_Matlab - Fatal编程技术网

String MATLAB有字符串的条带函数吗?

String MATLAB有字符串的条带函数吗?,string,matlab,String,Matlab,是否有一个简单的函数f f(' hello, world! ' ) == 'hello, world!' 我可以使用正则表达式去掉空格(或任何字符),但这似乎是在解决问题。我只是想知道我是否遗漏了一些简单的内容。要删除字符串侧面的空格,请使用strtrim命令。无需使用锤子,只需使用 从文件中: S=strtrim(str)返回字符串str的一个副本,其中包含所有前导和 已删除尾随空白字符。可以使用空白字符 isspace函数为其返回逻辑1(true)的函数 自Matlab版本2016b起,您

是否有一个简单的函数f

f(' hello, world! ' ) == 'hello, world!'

我可以使用正则表达式去掉空格(或任何字符),但这似乎是在解决问题。我只是想知道我是否遗漏了一些简单的内容。

要删除字符串侧面的空格,请使用
strtrim
命令。

无需使用锤子,只需使用

从文件中:

S=strtrim(str)返回字符串str的一个副本,其中包含所有前导和 已删除尾随空白字符。可以使用空白字符 isspace函数为其返回逻辑1(true)的函数


自Matlab版本2016b起,您可以使用内置函数

对于那些没有更新的matlab版本的人,这里是我的自定义函数,当strCharacter作为strip()传入时,它也没有精确一个字符的限制

功能结果=微调(s,varargin)
%将多个空间合并到中间的单个空间。
%删除尾随/前导空格
%修剪(s[,how[,chars]])
%s:一串
%如何:数量1=仅左;
%2=仅右侧;
%3=左侧和右侧;
%4(默认)=左、右和合并中间
%字符:如果未给定(默认),则为空格
%如果给定,请删除连续字符
% 
如果nargin==1
how=4;
字符='';
埃尔塞夫·纳金==2
how=varargin{1};
字符='';
埃尔塞夫·纳金==3
how=varargin{1};
chars=varargin{2};
结束%end如果是nargin
如果strcmp(chars',),chars='\s';结束
如果how==1
表达式=sprintf('^(%s)+',chars);
elseif how==2
表达式=sprintf(“(%s)+$”,字符);
elseif how==3
表达式=sprintf(“^(%s)+|(%s)+$”,字符,字符);
elseif how==4

expression=sprintf(“(?谢谢!我不认为有一个函数可以从字符串的边缘删除任意字符?有趣的是,这个函数是新的,但是它的文档使用了过时的
string
函数
         function result = trim(s,varargin)
            % Merge multiple spaces to single space in the middle
            % remove trailing/leading spaces
            % trim(s [, how [,chars]])
            %     s: a string 
            %     how: a num 1=left only; 
            %                2=right only; 
            %                3=left and right; 
            %                4 (default)=left and right and merge middle
            %     chars: if not given (default), space
            %              if given, remove consecutive character instead
            % 

            if nargin == 1
                how = 4;
                chars = ' ';
            elseif nargin == 2
                how = varargin{1};
                chars = ' ';
            elseif nargin == 3
                how = varargin{1};
                chars = varargin{2};
            end % end if nargin

            if strcmp(chars,' '), chars='\s'; end

            if how==1
                expression = sprintf('^(%s)+',chars);
            elseif how==2
                expression = sprintf('(%s)+$',chars);
            elseif how==3
                expression = sprintf('^(%s)+|(%s)+$',chars,chars);
            elseif how==4
                expression = sprintf('(?<=[(%s)])(%s)*|^(%s)+|(%s)+$',chars,chars,chars,chars);
            end % end if how

            result = regexprep(s, expression, '');
        end