I want to find different values in different matrices at the same date???

1 view (last 30 days)
Dear all, I have again a problem with the date. I have two different matrices with different dimensions. In the matrix jump is in the fist column the date, but the different points in time are not equally spaced. So some days between the years 2004 and 2012 are missing. In the second column are the values of the the jumps. The dimension of the matrix is 2746*2. The second matrix has the dimension 3288*4. So this matrix has also the date in the first column but much more points in time. I want to add the values of the first matrix to the second matrix and the values in the first matrix should be at the same day in the second matrix as before. So the date is the selection criterion. The date is converted to numbers. I tried it with an if else loop but I did not work. How can I add the values of jump to the second matrix??? Thank you in advance.
  3 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 20 Feb 2013
Edited: Azzi Abdelmalek on 20 Feb 2013
What do you mean by to add a value? is it a sum or what? In the second matrix there are 3 columns while in the first there is one, where to add these values?
Thor
Thor on 20 Feb 2013
The date is a number, because I converted it with the command datenum. In the matix jump was it dd-mmm-yyyy hh:mm:ss and in the other matrix only dd-mmm-yyyy. I want to separate the second column of jump and add each value to second matrix to the same date, where it was before. So I can not use horzcat because there are different dimensions of time. Each point of time in jump is in the second matrix but in a different adjustment. So I dont want to sum up and I want to create a 5th column in the second matrix. I want to reallocate 2746 values to the second matrix and the other values in the new 5th column should be zero. Thank you!

Sign in to comment.

Accepted Answer

Thorsten
Thorsten on 20 Feb 2013
A = [1 3; 2 4; 5 8];
B = [[1:5]' [ 40 50 60 70 80]'];
for i = 1:size(A, 1)
B(find(A(i,1)== B(:,1)), 3) = A(i, 2);
end
  4 Comments
Thorsten
Thorsten on 20 Feb 2013
You have to convert the dates to numbers and everything should work.
Thor
Thor on 20 Feb 2013
Yes you're right. I had to round the datevector, because of the different format with additional hh:mm:ss. So now it works. Thank you!

Sign in to comment.

More Answers (0)

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!