Is there a one-line code for this?

조회 수: 17 (최근 30일)
Mitsu
Mitsu 2021년 6월 27일
댓글: Dyuman Joshi 2025년 11월 20일 15:49
% 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.
Mitsu
Mitsu 2021년 6월 27일
Understood. Thank you.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

SUPRIYA
SUPRIYA 2025년 11월 20일 7:28
편집: Stephen23 2025년 11월 20일 9:15
% Define the differential equation dy/dx = f(x, y)
% Example: dy/dx = (y^2-x^2)/(y^2+x^2) f = @(x, y) x + y;
% Input initial and final conditions
x0 = input('Enter the initial value of x0: ');
y0 = input('Enter the initial value of y0: ');
xg = input('Enter the final value of xg: ');
h = input('Enter the value of step size h: ');
% Number of steps
n = (xg - x0) / h;
% Runge-Kutta 2nd order iteration
for i = 1:n
k1 = h * f(x0, y0);
k2 = h * f(x0 + h, y0 + k1);
k = (k1 + k2) / 2;
yg = y0 + k; % Update y
x0 = x0 + h; % Update x y0=yg;
end
% Display final result
fprintf('The final value of y at x = %f is y = %f\n', x0, y0);
Is there a way to do entire code in one line
  댓글 수: 2
Stephen23
Stephen23 2025년 11월 20일 9:17
"Is there a way to do entire code in one line"
x0 = input('Enter the initial value of x0: '); y0 = input('Enter the initial value of y0: '); xg = input('Enter the final value of xg: '); h = input('Enter the value of step size h: '); n = (xg - x0) / h; for i = 1:n; k1 = h * f(x0, y0); k2 = h * f(x0 + h, y0 + k1); k = (k1 + k2) / 2; yg = y0 + k; x0 = x0 + h; y0=yg; end; fprintf('The final value of y at x = %f is y = %f\n', x0, y0);
Dyuman Joshi
Dyuman Joshi 2025년 11월 20일 15:49
Lol.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by