String 如何在matlab中替换字符串的一部分

String 如何在matlab中替换字符串的一部分,string,matlab,String,Matlab,我有一个字符串矩阵,里面填充了如下数据 matrix = ['1231231.jpeg','4343.jpeg',...] 我想删除它的文件扩展名并获取 matrix = ['1231231', '4343'] 我怎么做?是否有任何函数或什么:)在matlab中有一个用于此的函数 matlab中有一个函数用于此 用户fileparts,它返回三个变量:文件的路径,名称,和扩展名。所以这应该对你有用 [~, fName, ext] = fileparts(fileName) 用户fil

我有一个字符串矩阵,里面填充了如下数据

matrix = ['1231231.jpeg','4343.jpeg',...]
我想删除它的文件扩展名并获取

matrix  = ['1231231', '4343']

我怎么做?是否有任何函数或什么:)

在matlab中有一个用于此的函数


matlab中有一个函数用于此


用户fileparts,它返回三个变量:文件的
路径
名称
,和
扩展名
。所以这应该对你有用

[~, fName, ext] = fileparts(fileName)

用户fileparts,它返回三个变量:文件的
路径
名称
,和
扩展名
。所以这应该对你有用

[~, fName, ext] = fileparts(fileName)

假设矩阵看起来像

 matrix = ['1231231.jpeg';
           '4343.jpeg';
            ....];
(;而不是,)。如果使用“,”,矩阵中的字符将自动合并

您可以使用
arrayfun
对矩阵的每个索引执行操作。下面的命令应该可以工作

arrayfun(@(x) matrix(x,1:strfind(a(matrix,:),'.jpeg')-1), str2num(matrix(:,1))', 'UniformOutput' , false)

假设矩阵看起来像

 matrix = ['1231231.jpeg';
           '4343.jpeg';
            ....];
(;而不是,)。如果使用“,”,矩阵中的字符将自动合并

您可以使用
arrayfun
对矩阵的每个索引执行操作。下面的命令应该可以工作

arrayfun(@(x) matrix(x,1:strfind(a(matrix,:),'.jpeg')-1), str2num(matrix(:,1))', 'UniformOutput' , false)

您可以始终循环遍历它们并解析它们,如下所示:

r[i] = regexp(char(string), '(?<dec>\d*).(?<ext>\w*)', 'names');
r[i]=regexp(字符(字符串),'(?\d*)。(?\w*),'names');

使用r[i].dec作为数字值。

您可以始终循环使用它们并解析它们,如下所示:

r[i] = regexp(char(string), '(?<dec>\d*).(?<ext>\w*)', 'names');
r[i]=regexp(字符(字符串),'(?\d*)。(?\w*),'names');
使用r[i].dec作为数值。

注意:不同长度字符串(垂直)串联的矩阵将不起作用(等长字符串的特殊情况除外)。调用
[a;B]时,
vertcat将每个字符视为单个矩阵元素。

或者,使用单元格数组和
cellfun
(+独立于文件扩展名):

注:不同长度字符串的(垂直)串联矩阵不起作用(等长字符串的特殊情况除外)。调用
[a;B]时,
vertcat将每个字符视为单个矩阵元素。

或者,使用单元格数组和
cellfun
(+独立于文件扩展名):


但是我的案例没有路径,然后忽略输出arg(正如@slayton使用
~
所做的那样),但我还需要对矩阵的每个元素执行此操作,并消除每个元素的扩展。我怎么能这样做呢?我的案例没有路径,然后忽略输出arg(正如@slayton使用
~
所做的那样),但我还需要对矩阵的每个元素执行此操作,并消除每个元素的扩展。我怎么能这样做呢?有什么建议吗?我的案例没有路径bro那么pathstr将是空的或类似的东西我的案例没有路径bro那么pathstr将是空的或类似的东西
arrayfun
在循环中不会给你带来太多性能,因为它在内部使用循环。虽然这种方法“有效”,但一种更具可读性的解决方案是将其作为循环编写,而不使用匿名函数。
arrayfun
在循环内部使用循环,因此无法为您带来更多性能。虽然这种方法“有效”,但一种更具可读性的解决方案是将其作为循环编写,而不使用匿名函数。