小编fod*_*ish的帖子

来自Matlab中的单元阵列的子串

我是MATLAB的新手,我正在努力理解数组和元素操作之间的细微差别.我正在使用大型数据集,我发现最简单的方法并不总是最快的.我有一个非常大的字符串Cell数组,就像在这个简化的例子中一样:

% A vertical array of same-length strings
CellArrayOfStrings = {'aaa123'; 'bbb123'; 'ccc123'; 'ddd123'};
Run Code Online (Sandbox Code Playgroud)

我正在尝试提取一个子串数组,例如:

'a1'
'b1'
'c1'
'd1'
Run Code Online (Sandbox Code Playgroud)

我很满意这样的元素参考:

% Simple element-wise substring operation
MySubString = CellArrayOfStrings{2}(3:4);  % Expected result is 'b1'
Run Code Online (Sandbox Code Playgroud)

但是,我无法一劳永逸地将这些符号全部引用,如下所示:

% Desired result is 'a1','b1','c1','d1'
MyArrayOfSubStrings = CellArrayOfStrings{:}(3:4); % Incorrect notation!
Run Code Online (Sandbox Code Playgroud)

我知道Matlab能够执行非常快速的数组操作,例如strcat,所以我希望有一种技术能够以类似的速度运行:

% An array-wise operation which works quickly
tic
speedTest = strcat(CellArrayOfStrings,'hello');
toc   % About 2 seconds on my machine with >500K array elements
Run Code Online (Sandbox Code Playgroud)

所有使用幕后迭代的for循环和函数我尝试使用我的数据集运行得太慢了.是否有一些阵列方式表示法会这样做?有人能够纠正我对元素和阵列操作的理解吗?!非常感谢!

matlab cell-array

5
推荐指数
1
解决办法
4676
查看次数

标签 统计

cell-array ×1

matlab ×1