Is there a one-line code for this?

1 次查看(过去 30 天)
% I would like to go from A = [1 1;2 2;3 3;4 4;5 5]
% to A = [1 1;2 2;3 3;4 4;5 5;1 2;2 3;3 4;4 5;5 6];
A = [1 1;2 2;3 3;4 4;5 5];
% Multi-line approach
B = A;
B(:,2) = B(:,2) + 1;
A = [A;B];
clear B
% Is there a way to do this in one line of code? I have to do similar operations multiple times,
% and would like to know if there is a way to do so. Otherwise, I will settle for a function.
% Note that the actual matrices are 1,000,000+ x 30 in size.
% Thank you

采纳的回答

Stephen23
Stephen23 2021-6-27
A = [1 1;2 2;3 3;4 4;5 5];
A = [A;A+(0:1)]
A = 10×2
1 1 2 2 3 3 4 4 5 5 1 2 2 3 3 4 4 5 5 6
  3 个评论
Stephen23
Stephen23 2021-6-27
"the simplest way is the following then?"
Probably the "simplest way" is just as you show in your question.
If you want to avoid duplicated data, you could create B first then add one to the appropriate (part-)column.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by