MATLAB Answers

Goryn
0

Define variable inputs for 'merge' function

Asked by Goryn
on 28 Mar 2013
Accepted Answer by Jan
Hello,
could you please help me with the next problem.
I'm trying to merge N financial time series objects by function newfts = merge(fts1, fts2, ..., ftsx). How may I define a variable inputs for that? Because, when I have 2 time seriesobjects it becomes:
newfts = merge(fts1, ft2);
When I have 3:
newfts = merge(fts1, fts2, fts3);
How to avoid of examination of all posible options?
ATTENTION! Please, don't suggest to use a cell array
v={fts1,fts2,...,ftsn}
and use
function newfts = merge(v)
It doesn't work.

  0 Comments

Sign in to comment.

1 Answer

Answer by Jan
on 28 Mar 2013
Edited by Jan
on 28 Mar 2013
 Accepted Answer

It is strange, that you do not want us to post the best solution by using a cell array. Unfortunately you only claim, that "it does not work", but do not mention any details. Of course it works, when you add a little "{:}":
v = {fts1,fts2,...,ftsn}
newfts = merge(v{:})
Then merge() gets a comma-separated list exactly as if you call it as:
newfts = mergs(fts1, fts2, fts3); % Or how many elements v contains
In addition using a cell is a much better idea than naming the variables "fts1, fts2, ...". Using fts{k} would be more convenient, see http://www.mathworks.com/matlabcentral/answers/57445-faq-how-can-i-create-variables-a1-a2-a10-in-a-loop.

  1 Comment

Thank you, Jan. Great answer.

Sign in to comment.