How to simplify the given code snippet?

1 view (last 30 days)
Hello,
I need to simplify the following code. Perhaps 'reshape' function should be used, but in which way? Any ideas would be appreciated.
t=0:0.05:1;
% Dimensions of X and dx are the same
X=1:3; dx=0:0.1:0.3;
% How to write these 4 lines as 1?
colX1 = (X(1) + dx(1)*t)';
colX2 = (X(2) + dx(2)*t)';
colX3 = (X(3) + dx(3)*t)';
colX = [colX1; colX2; colX3];
  1 Comment
Walter Roberson
Walter Roberson on 2 Nov 2011
Note: your dx array might turn out as either 3 or 4 elements long, so be careful not to code anything that depends implicitly upon the length of dx.

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 2 Nov 2011
colX2 = reshape(bsxfun(@plus,X,bsxfun(@times,t',dx(1:3))),[],1);
or
colX2 = reshape(bsxfun(@plus,X,t'*dx(1:3)),[],1)

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!