How do I associate specific values to specific verbiage?

3 views (last 30 days)
I've got 2 arrays: A = [1; 2; 3; 1; 2; 3]; and B = [ ];
I need array B to contain [Lost; Found; Unk; Lost; Found; Unk] based on the values found in A.
I'm using the find function to locate the indices of the values 1, 2, and 3. But I'm not sure what to do next.
Any ideas are appreciated. Thanks.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 9 Oct 2013
A = [1; 2; 3; 1; 2; 3]
v={'Lost'; 'Found'; 'Unk'}
B=v(A)
  4 Comments
Brad
Brad on 9 Oct 2013
Sorry Azzi.
What if A = [1; 11; 3; 1; 2; 3; 55; 1; 53; 29] ?
How would I associate 'Lost', 'Found', 'Unk' with 1,2, and 3?

Sign in to comment.

More Answers (1)

Karen
Karen on 23 Sep 2024
Edited: John Kelly on 18 Nov 2024 at 15:01
To achieve the desired transformation of array A into array B, you can use a combination of the find function and logical indexing in MATLAB. Here’s a step-by-step solution:
matlab
Copy code
A = [1; 2; 3; 1; 2; 3];
B = strings(size(A)); % Initialize B as a string array of the same size as A
% Find indices for each value in A
index1 = find(A == 1);
index2 = find(A == 2);
index3 = find(A == 3);
% Assign the corresponding strings to the indices
B(index1) = "Lost";
B(index2) = "Found";
B(index3) = "Unk";
% Display the result
disp(B);
Here’s how it works:
  1. Initialization: We initialize B as a string array with the same size as A.
  2. Finding Indices: Using the find function, we locate the indices of elements in A that are equal to 1, 2, and 3.
  3. Assigning Values: We assign the corresponding string values ("Lost", "Found", "Unk") to the respective indices in B.
  4. Displaying Result: Finally, we display the resulting array B.
The output will be:
matlab
Copy code
6×1 string array
"Lost"
"Found"
"Unk"
"Lost"
"Found"
"Unk"

Tags

Products

Community Treasure Hunt

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

Start Hunting!