![](/img/trans.png)
[英]How to get value for each string index matching key in dictionary in Python
[英]get index for corresponding string matching a string within a vector
我有一个带有不同字符串名称的向量;
A = {
'alex'
'alex'
'sophie'
'alex'
'david'
'sophie'
'david'
'david'
'sophie'
'alex' };
并为其对应2个变量,假设年龄和大小type_age = [1:10]; type_size = [10:10:100];
我希望能够做类似的事情
un_a = unique(A);
f = find(A==un_a(1)); % I know this would work if I had numbers and not string..
alex_age = type_age(f);
alex_size = type_size(f);
plot(alex_age,alex_size,'.r',sophie_age,sophie_size,'.b');
尽管上面仅是一个示例,但我希望能够生成类似的内容,以便为每个名称绘制不同颜色的变量散点图。
因此,我遇到的困难是获取字符串数组中对应的唯一名称的索引(f)。
另一方面,如果有更简便的方法,请告诉我。 我实际上有一个庞大的数据集。
另外我也不知道strcmp是否可以派上用场-或使用开关盒。
在此先多谢!
已经为您完成。 只需使用unique
功能的完整语法即可:
[un_a,b,m] = unique(A);
现在
un_a =
'alex'
'david'
'sophie'
b =
10
8
9
m =
1
1
3
1
2
3
2
2
3
1
使用m
可以从其他相关数组中提取数据,如下所示:
>> alex_age = type_age( m==1 )
alex_age =
1 2 4 10
>> david_age = type_age( m==2 )
david_age =
5 7 8
>> sophie_age = type_age( m==3 )
sophie_age =
3 6 9
没有一个比较运算符中的数字是un_a
数组中相应名称的索引。
编辑 @sophie,在您的上下文中un_a = A(b)
,因此b
保持原始数组A
唯一元素的位置。 例如,您在数组1,2,4,10的位置上有四个'alex'(存储在un_a{1}
),因此得到b(1)=10
作为其中一个索引(最后一个,我不确定这是否已记录在案,它可能来自搜索算法。 如果要获取其他索引,您可以这样:
alex_idx = find( m==m(b(1)) )
alex_idx =
1
2
4
10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.