I have two string arrays a and b and I need to find the index matching the substring numbers (within string arrays). For example, in a string array a, 01, 02, 03 are the substrings matching in string array b.
a = {'frame01', 'frame02', 'frame03'};
a = string(a);
b = {'capture00.jpg' 'capture01.jpg', 'capture02.jpg', 'capture03.jpg', 'capture04.jpg'};
b = string(b)
Desired output index of string array b should be:
Index_b = [2 3 4]
Desired output index of string array a should be:
Index_a = [1 2 3]
Without for-loop solution is preferred.
Any help is appreciated!

4 Kommentare

Stephen23
Stephen23 am 2 Nov. 2021
Bearbeitet: Stephen23 am 2 Nov. 2021
The substrings 'a', 'e', and 'r' are also substrings common to both arrays: why are you not listing them?
Yes, you are right. Sorry I did not include it has to be substring numbers. I edited that in the question. Thanks for pointing it out!
Stephen23
Stephen23 am 2 Nov. 2021
Do the substring numbers require the same leading zeros or just the same numeric value, i.e. is '3' the same as '03' ?
It is numbers with leading zeros in this example. But in general can be without leading zeros.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Stephen23
Stephen23 am 2 Nov. 2021
a = ["frame01", "frame02", "frame03"];
b = ["capture00.jpg", "capture01.jpg", "capture02.jpg", "capture03.jpg", "capture04.jpg"];
[~,ia,ib] = intersect(regexp(a,'\d+','once','match'),regexp(b,'\d+','once','match'))
ia = 3×1
1 2 3
ib = 3×1
2 3 4

2 Kommentare

Thanks!
And if you want to compare numeric values (i.e. disregard the leading zeros) then:
a = ["frame01", "frame02", "frame03"];
b = ["capture00.jpg", "capture01.jpg", "capture02.jpg", "capture03.jpg", "capture04.jpg"];
[~,ia,ib] = intersect(...
str2double(regexp(a,'\d+','once','match')),...
str2double(regexp(b,'\d+','once','match')))
ia = 3×1
1 2 3
ib = 3×1
2 3 4

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by