Azzera filtri
Azzera filtri

Creating matrix outside for loop

1 visualizzazione (ultimi 30 giorni)
m13
m13 il 19 Feb 2017
Commentato: Star Strider il 20 Feb 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

Risposta accettata

Star Strider
Star Strider il 19 Feb 2017
Modificato: Star Strider il 19 Feb 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 Commenti
m13
m13 il 20 Feb 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 il 20 Feb 2017
You do not need the loop.
This works:
U = sin(y1);
(I apologise for the delay.)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by