Info

This question is closed. Reopen it to edit or answer.

converting a minute chart

1 view (last 30 days)
AA
AA on 29 Oct 2014
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi guys, i have a table with 6 columns and 4 million rows. Column1 shows the date and column 2 the time. Column 3 the opening price, column4 the max price, column5 the min price and column6 the closing price. The whole table presents a one minute chart. I want to convert this to a two minute chart in the following manner: two rows have to be combined(row1 and row2). Column 1,2,3 should have the values of row1. Column4 should contain the max value of row1 and row2. Column 5 should have the min value of row1 and row2. Column6 should have theclosing value of row2.
i used the following code:
x - your array (4e6 x 6)
n = ceil((1:size(x,1))'/2);
out = [x(1:2:end,1:3), accumarray(n,x(:,4),[],@min),...
accumarray(n,x(:,5),[],@max),x(2:2:end,6)];
n = 2:100;
for jj = numel(n):-1:1
n1 = ceil((1:size(x,1))'/n(jj));
out{jj} = [x(1:n(jj):end,1:3), accumarray(n1,x(:,4),[],@min),...
accumarray(n1,x(:,5),[],@max),x(n(jj)-1:n(jj):end,6)];
end
bUT i get this error
out = [out(1:2:end,1:3), accumarray(n,out(:,4),[],@min),...
accumarray(n,out(:,5),[],@max),out(2:2:end,6)]
Undefined function 'accumarray' for input arguments of type 'table'.
why is it not working?

Answers (0)

This question is closed.

Community Treasure Hunt

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

Start Hunting!