How do I associate specific values to specific verbiage?

3 次查看(过去 30 天)
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.

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-10-9
A = [1; 2; 3; 1; 2; 3]
v={'Lost'; 'Found'; 'Unk'}
B=v(A)
  4 个评论
Brad
Brad 2013-10-9
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?

请先登录,再进行评论。

更多回答(1 个)

Karen
Karen 2024-9-23
编辑:John Kelly 2024-11-18,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"

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by