MATLAB Answers

For Loop /Array question

2 views (last 30 days)
How would i go about creating a for loop to create an array where each value in X is equal to its associated row value * 2 plus its associated column value * 3 +1. Size of array is 50x50 ?

  2 Comments

James Tursa
James Tursa on 3 Feb 2020
What have you done so far? What specific problems are you having with your code? Do you know how to write a for-loop? Do you know how to pre-allocate a 50x50 matrix?
Tyler Young
Tyler Young on 4 Feb 2020
I know how to write simpler for loops where I can identify a "start" point for my indx and run through a simple array or vector to "end" but Im struggling to comprehend how to build the value of this equation.

Sign in to comment.

Accepted Answer

Hiro Yoshino
Hiro Yoshino on 4 Feb 2020
How about this?:
X = zeros(50, 50);
[m, n] = size(X); % m x n = 50, 50
for i = 1:m % Row
for j = 1:n % Column
X(i, j) = i * 2 + j * 3 + 1;
end
end
(m, n) could be anytihng.
The point here is size function. Good luck!

  1 Comment

Tyler Young
Tyler Young on 4 Feb 2020
Thank you, that does work, and helps to see it done that way too. I ended up going about it differently, but I was orginally thinking of using "zeros"
for row = 1:1:50
for col = 1:1:50
X(row,col) = [row * 2 + col * 3 + 1]
end
end

Sign in to comment.

More Answers (1)

KSSV
KSSV on 4 Feb 2020
Check the below deom code where each element of a matrix is sum of its row and column position. Extend this to your case.
m = 5 ; % number of rows
n = 5 ; % number of columns
iwant = zeros(m,n) ; % initialize the required matrix
% loop
for i = 1:m % loop for row
for j = 1:n % loop for column
iwant(i,j) = i+j ; %(i,j)th element is sum of i and j
end
end

  1 Comment

Tyler Young
Tyler Young on 4 Feb 2020
Thank you, appreciate the multiple ways of seeing this done.

Sign in to comment.

Sign in to answer this question.


Translated by