Remove strings from an array based on string length
Show older comments
Hello. I'm trying to remove strings from a string array based on string length. I want to remove strings with lesser than 2 alphabets. I tried the following code but I'm getting an error
clc; clear;
s = {'a';'b';'cat';'apple'};
s1 = string(s);
String_length = strlength(s1);
Min_length = 2;
Modified_string = [s1 String_length];
indices = find(Modified_string(:,2) < Min_length);
Modified_string(indices,:) = [];
Error using <
Comparison between string and double is not supported.
Error in Dummy (line 8)
indices = find(Modified_string(:,2) < Min_length);
1 Comment
This approach is very complex, with one implicit conversion from numeric to string, which then requires an explicit conversion from string to numeric. Pointless type conversions should be avoided, as they just slow code down without any benefit.
Here is a much simpler and more efficient solution using basic MATLAB indexing:
out = s1(strlength(s1)>=2))
Accepted Answer
More Answers (0)
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!