Effacer les filtres
Effacer les filtres

Creating matrix outside for loop

1 vue (au cours des 30 derniers jours)
m13
m13 le 19 Fév 2017
Commenté : Star Strider le 20 Fév 2017
I need to create a matrix of variables and have the current code below. Is there anyway to do this without a for loop?
x = 0:.1:1;
y = 0:.1:1;
for i = 1:length(x)
for j = 1:length(y)
x2(i,j) = x(i);
y2(i,j) = y(j);
end
end

Réponse acceptée

Star Strider
Star Strider le 19 Fév 2017
Modifié(e) : Star Strider le 19 Fév 2017
Try this:
x2 = y'*ones(size(x));
y2 = ones(size(y'))*x;
EDIT
The R2016b multiplication automatically does the expansion. Previous versions would require bsxfun calls:
x2 = bsxfun(@times, y', ones(size(x)));
y2 = bsxfun(@times, ones(size(y')), x);
  5 commentaires
m13
m13 le 20 Fév 2017
Star if I need to use the y1 value in another for loop does this still work? I tried it and now I'm getting the error that the number of elements must be the same. The for loop is:
for k = 1:n
U(k) = sin(y1);
end
Star Strider
Star Strider le 20 Fév 2017
You do not need the loop.
This works:
U = sin(y1);
(I apologise for the delay.)

Connectez-vous pour commenter.

Plus de réponses (0)

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