Print output if elements of a list match values in a column
2 次查看(过去 30 天)
显示 更早的评论
I have a column/list of values A:
1
2
3
4
5
6
7
8
9
10
And an according list/column of values B:
A
B
C
D
E
F
G
H
I
J
From the column/list of A I am extracting certain values e:
3
6
8
10
Now I have a column C containing values of B in a random order:
A
A
B
F
D
H
C
E
K
C
J
A
And according values in column D:
0.01
0.02
0.12
0.13
0.24
0.09
0.14
0.01
0.04
0.07
0.12
0.19
First step I need to do is match the extracted values e with the values in column A to get the according values from column B to get values f:
C
F
H
J
Second step is to match values in f with values in C and get their according values to g; else it is 0:
0
0
0
0.13
0
0.09
0.14
0
0
0.07
0.12
0
How can I do those steps?
I thought about runnig a loop, but it wont work for me.
Thanks for your help!
0 个评论
采纳的回答
Stephen23
2021-5-3
编辑:Stephen23
2021-5-3
A = [1;2;3;4;5;6;7;8;9;10];
B = ["A";"B";"C";"D";"E";"F";"G";"H";"I";"J"];
e = [3;6;8;10];
C = ["A";"A";"B";"F";"D";"H";"C";"E";"K";"C";"J";"A"];
D = [0.01;0.02;0.12;0.13;0.24;0.09;0.14;0.01;0.04;0.07;0.12;0.19];
[X,Y] = ismember(e,A);
f = B(Y(X))
Z = ismember(C,f);
g = zeros(size(C));
g(Z) = D(Z)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!