MATLAB在单元格数组中用于Octave的extractBetween替代方法

问题描述 投票:3回答:2

我正在尝试在Octave中运行MATLAB代码。有一个MATLAB函数extractBetween在八度中尚不可用。原始代码是

extractBetween

我试图用此代码替换它。

numbers = str2double(extractBetween(dirAndFileNames(:,2), 4, 5));

它适用于单个字符串,但不适用于单元格数组。我尝试了其他与单元格数组一起使用的函数,例如numbers = str2double(substr(dirAndFileNames(:,2), 4, 2)); strtrim。我想最后提取数字,但strtrunc给出了与我想要的相反的数字。它给出了第一个字母。

strtrunc看起来像这样:

dirAndFilenames(:,2)
matlab octave compatibility substr cell-array
2个回答
2
投票

正如@cris所建议的,我不得不循环。

debug> dirAndFileNames(:,2)
ans =
{
  [1,1] = desktop.ini
  [2,1] = trn01
  [3,1] = trn02
  [4,1] = trn03
  [5,1] = trn04
  [6,1] = trn05
  [7,1] = trn06
  [8,1] = trn07
  [9,1] = trn08
  [10,1] = trn09
  [11,1] = trn10
}

1
投票

您可以使用for i = 1:length(dirAndFileNames) numbers{i} = str2double(substr(dirAndFileNames(i,2){1}, 4, 2)) end

cellindexmat
© www.soinside.com 2019 - 2024. All rights reserved.