How can I find each character's index within a matrix, from a vector of characters?
6 views (last 30 days)
Show older comments
I have a matrix of characters
Letters = [A, B, C;
D, E, F;
G, H, I];
Secondarily, I will have a vector of letters, and I need to find the index of each letter in the matrix of Letters. For example,
vec = [A, C, H, I], or it could be any combination of letters. I'm sure there is a simple answer that I am missing. I know normally you need to call the character with a string, but I don't know how to call, say vec(1) as a string (as in, idx = find(Letters == vec(1)), and it would return 1, for A), which I think would solve the problem.
0 Comments
Answers (2)
Chunru
on 28 Apr 2023
Letters =['ABC'; 'DEF'; 'GHI']
vec = 'ACHI'
for i=1:length(vec)
[r, c] = find(Letters == vec(i));
fprintf("%s: (%d, %d)\n", vec(i), r, c)
end
0 Comments
DGM
on 28 Apr 2023
If you're talking strictly about character arrays, then:
Letters = ['ABC'; 'DEF'; 'HIJ'];
vec = 'ACHI';
[~, idx] = ismember(vec,Letters) % idx is a linear index into Letters
0 Comments
See Also
Categories
Find more on Logical 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!