Can Matlab do this without using a for loop?

Hi, I'm new to Matlab and need some help. I'm using a for loop to calculate all Rs from all combination of A and B. How can I do that?Can Matlab do this without using a for loop?
this is my code
A=(-15:0.175:-1); B=(8:0.1:16);
R = zeros(81);
for i = 1:8
for j =1:81
C = A(i)* erf(x) + B(j);
R = (y-C).^2;
end
end
end
thanks,

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 14 Jan. 2013

0 Stimmen

It looks like you are only saving the output from the final iteration.
If you wanted a matrix of every combination, this should do it:
A=(-15:0.175:-1); B=(8:0.1:16);
R2 = (y - bsxfun(@(a,b)a*erf(x)+b,A,B.')).^2

2 Kommentare

Ali
Ali am 15 Jan. 2013
thank you but I tried that and I have a problem with matrix dimensions
Error using + Matrix dimensions must agree.
Error in @(a,b)a*erf(x)+b
both y and x have the size of 1 1000 both A and B have a size of 1 81
Ali
Ali am 15 Jan. 2013
I just realized that I need to make A and B the same size as x. Is it possible to expand bsxfun to include 4 parameters A, B ,C and D?
Thanks for your help

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by