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

1 vue (au cours des 30 derniers jours)
Salar
Salar le 30 Mai 2014
Commenté : Salar le 30 Mai 2014
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 commentaires
Mahdi
Mahdi le 30 Mai 2014
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 le 30 Mai 2014
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]

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 30 Mai 2014
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

Plus de réponses (1)

sst
sst le 30 Mai 2014
Modifié(e) : sst le 30 Mai 2014
This should not require a for loop:
x = [-20:-1, 1:20].';
Amatrices = arrayfun(@(X) [1+X, 1; 2, 5], x, 'UniformOutput', false);
  1 commentaire
Salar
Salar le 30 Mai 2014
That works, but do you know how to do it by a for loop?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by