Concatenate large matrices a bottleneck in function

Hi,
I have a function that concatenates two matrices, size of 100000 X 90 for an outcome of 100000 X 180.
This is a significant bottleneck as the function has to repeat many times.
Pre-allocating the outcome does not seem to make any difference, and using cat() or [] also seems to make no difference.
Does anyone have suggestions on how to speed this up?
Thank you.

2 个评论

can you post your code?
are you trying to do this ?
A=ones(100000,90);
B=2*ones(100000,90);
C = [A,B];
Hello -
Thanks for your comment.
I won't post my code because, yes, that is exactly what I am doing.

请先登录,再进行评论。

回答(1 个)

The horzcat() function is usually faster than cat() or [, ]. You may use it.
A = ones(100000,90);
B = 2*ones(100000,90);
result = horzcat(A, B);

1 个评论

The timing tests I tried show horzcat(A,B) and [A,B] and cat(2,A,B) to be indistinguishable in timing -- the differences were below random variation

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by