if code

Hi guys, I need an help with an if, it's the first time I use it and I am not sure if it works because if I write just & a note appears suggesting to use &&, but if I put && turns an error: ??? Operands to the and && operators must be convertible to logical scalar values.
the code is
for t=2:time
dWsim(t,:)=mu0+sigma0.*rndnum(t,:);
Wsim(t,:)=Wsim(t-1,:)+dWsim(t-1,:);
B(t,:)=1./((m-1)*(1-Wsim(t,:))).^(1/(m-1));
sigma(t,:)=sigma0.*((B(t,:)./B(1,:)).^m);
mu(t,:)=(sigma(t,:).^2).*(m./2.*B(t,:))+mu0.*((B(t,:)./B(1,:)).^m);
if(uninum(t,1:N)>0.5)&(mu(t,:)*(1/k)>uninum(t,1:N));
B(t,:)=B(t,:).*(1-k);
else
B(t,:)=B(t,:);
end
end
Can you please explain me in simple word swhich is the difference between & and &&
Thanks in advance
Gaia

 Risposta accettata

Jan
Jan il 27 Lug 2011

1 voto

The IF statenment is usually a scalar, otherwise an implicite ALL is performed. But perhaps you want an ANY:
if any(uninum(t,1:N)>0.5) && any(mu(t,:) / k > uninum(t,1:N))
or:
if all(uninum(t,1:N)>0.5 & mu(t,:) / k > uninum(t,1:N))
BTW: "* (1/k)" -> "/k" looks easier.

1 Commento

gaia buratti
gaia buratti il 27 Lug 2011
thabks for the explanation na dfor the suggestion, it does not solve my problem but can be really useful in the future. Btw, thanks to you I understood the mistake, now seems working.
I know about the I was just copying a formula...

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Programming in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by