MATLAB 查找字符串数组中非空字符串索引值
要处理一个字符串数组,找出每种非空字符串对应的索引值,可以使用 MATLAB 的 'unique' 函数结合逻辑索引来实现。以下是一个示例代码:
% 字符串数组
strArray = ['apple', '', 'banana', 'apple', 'orange', 'banana', ''];
% 获取非空字符串
nonEmptyStr = strArray(strlength(strArray) > 0);
% 获取唯一字符串
uniqueStr = unique(nonEmptyStr);
% 遍历唯一字符串并找出索引值
for i = 1:length(uniqueStr)
indices = find(strcmp(nonEmptyStr, uniqueStr(i)));
disp('String: ' + uniqueStr(i) + ', Indices: ' + num2str(indices));
end
在这个示例中,我们假设有一个字符串数组 'strArray',其中包含了多个字符串,包括空字符串。
首先,我们使用逻辑索引 'strlength(strArray) > 0' 获取非空字符串。'strlength' 函数返回字符串的长度,然后我们将长度大于 0 的字符串提取出来,存储在变量 'nonEmptyStr' 中。
然后,我们使用 'unique' 函数获取 'nonEmptyStr' 中的唯一字符串,并将结果存储在变量 'uniqueStr' 中。
接下来,我们使用 'for' 循环遍历 'uniqueStr' 中的每个唯一字符串。
在循环中,我们使用 'find' 函数和 'strcmp' 函数来找出 'nonEmptyStr' 中与当前唯一字符串相匹配的索引值。'strcmp' 函数用于比较两个字符串是否相等,'find' 函数用于查找满足条件的索引值。
最后,我们使用 'disp' 函数显示每个唯一字符串和对应的索引值。
运行这段代码,输出结果将会是:
String: apple, Indices: 1 4
String: banana, Indices: 3 6
String: orange, Indices: 5
这样,您就可以处理一个字符串数组,找出每种非空字符串对应的索引值。
原文地址: https://www.cveoy.top/t/topic/brl7 著作权归作者所有。请勿转载和采集!