Hi,
Im pretty sure there is an obvious answer for my issue however for some reason I just can't get the code to work the way I want it. My current code is:
tic
a = zeros(4);
n=(1:4);
for x = [1 2 3 4]
for y = [5 6 7 8]
a(n) = x*y
end
end
toc
However thats one of many versions I've tried. Basically what I want to do is times the first value of X by the first, second, third then forth value of y and then do the same with second value of x and so on. My expected answer should be
a = 5 6 7 8
10 12 14 16
15 18 21 24
20 24 28 32
I swear I've done this a multiple times in complex situations previously. however I'm trying to show some people how use the code on a basic level and just can't seem to get it to work.
Any help would be appreciated.

 Réponse acceptée

Image Analyst
Image Analyst le 31 Oct 2014
Modifié(e) : Image Analyst le 31 Oct 2014

0 votes

Try this:
tic
a = zeros(4);
for x = 1:4
for y = 5 : 8
a(x, y-4) = x * y
end
end
toc
a

2 commentaires

Ben
Ben le 31 Oct 2014
Whilst this does work i also need it to work with different numbers as well such as x and/or y = [1 4 9 10 18](basically a range with no pattern). However thank you for you help so far
Try this:
tic
x = [4, 5, 11, 3, 1]
y = [1, 4, 9, 10, 18]
a = zeros(length(y), length(x));
for row = 1 : length(y)
for col = 1 : length(x)
a(row, col) = x(col) * y(row);
end
end
toc
a

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by