Add contents of two columns to new columns with a delimiter between them
3 次查看(过去 30 天)
显示 更早的评论
I have a matrix of 11693682x3 uint8. I would like to create so called 'keys' for my data in a new column. For example:
1, 2, 3
2, 5, 7
3, 3, 6,
4, 29, 0
Output:
1, 2, 3, 1|2
2, 5, 7, 2|5
3, 3, 6, 3|3
4, 29, 0, 4|29
Could anyone point me at the best way to solve this?
0 个评论
回答(2 个)
dpb
2017-5-24
Well, it's simply impossible to add something like that as another column in an int8 array.
To do something similar you could create a corollary variable
>> key=categorical(cellstr(num2str(rb(:,1:2),'%d|%d')))
key =
1|2
2|5
3|3
4|29
>>
I'd suggest more conventional hashing techniques might be more useful, though. What's the end use here?
5 个评论
dpb
2017-5-26
I thought you were looking for a way to find the given pair; the above does that by locating where that pair is in the vector.
If it's two sets, then just combination of
key1==val1 & key2==val2
is the same result.
Walter Roberson
2017-5-25
If you only need to know what the distance is for each combination, but you do not need the path for each combination, then you can use https://www.mathworks.com/help/matlab/ref/graph.distances.html
If you need to know the path, then you can loop through all sources and use https://www.mathworks.com/help/matlab/ref/graph.shortestpath.html to all destinations.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!