How do I add a value in ONE element of a matrix in a for loop?

조회 수: 1 (최근 30일)
Salar
Salar 2014년 5월 30일
댓글: Salar 2014년 5월 30일
Hello, let's say I have a matrix A = [1+x,1;2,5] so I want to have x to go from -20 to 20 with x~=0
then I would need to have A(i) matrices with i=40 . How do I do this on Matlab? I've been reading on internet on indexing and things like that, but I keep getting errors. I really appreciate you taking the time.
Sincerely,
  댓글 수: 2
Mahdi
Mahdi 2014년 5월 30일
Does the second row (2,5) get repeated every time? Or does it become, let's say (you have 1 to 3)
A=[1, 1;
2,1;
3,1;
2,5]
Can you show an example of what you want the output to be?
Salar
Salar 2014년 5월 30일
Sure, let's say A = [1+x,1;2,5] , and for simplicity let's have x goes from -2 to 2 with and increment of one and x~=0, so output will look like =
A_1=[-1,1;2,5]
A_2=[0,1;2,5]
A_3=[2,1;2,5]
A_4=[3,1;2,5]

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

채택된 답변

Image Analyst
Image Analyst 2014년 5월 30일
I show you two different methods in the loop below:
counter = 1;
A3D = [];
for x = -20 : 20
if x == 0
continue;
end
% Method #1: Load into a cell array.
caA{counter} = [1+x,1;2,5];
% Method #2: Load into a 3D regular, normal array
A3D = cat(3, A3D, [1+x,1;2,5]);
counter = counter + 1;
end
% Print to command window
celldisp(caA)
A3D

추가 답변 (1개)

sst
sst 2014년 5월 30일
편집: sst 2014년 5월 30일
This should not require a for loop:
x = [-20:-1, 1:20].';
Amatrices = arrayfun(@(X) [1+X, 1; 2, 5], x, 'UniformOutput', false);

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by