perform join without using dataset or table

Hi everyone,
I am trying to add weights to a set of observations based on their year. So, I have 150 observations across 30 unique years. I have one weight per year. I would like to broadcast the weights to the 150 observations linking based on year. I understand that this can be done using database join functionality but I am wondering if there is a way to do this just using matrices.
To restate: My weights matrix is 30x2 (unique years x [years weights]). My data matrix is 150x2 (num observations x [year blank-waiting-for-weight].
Computational efficiency is critical here so that's why I'm trying to avoid conversions if possible.
Thanks for your thoughts, Mike

 采纳的回答

[~,lib]=ismember(dat(:,1),w(:,1)); % location of year in data
dat=[dat w(lib,2)]; % concatenate the weights in those rows

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Calendar 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by