Matlab -- how can i use a FOR loop if I have 2 variables changing

  • #1
1
0
Hey,for following code the 3rd loops i need to have 2 variables m and q .Could anyone help?
Matlab:
for t=1:maxiterations
    toterror=0;
    for j=1:numfeature
        totslope=0;
        for i=1:m&&q=1:numfeature
              z=0;
           for jj=1:numfeature
               z=z+prevtheta(jj)*x(i,jj);
           end
           h=1.0/(1.0+exp(-z));
           H=H+(x(i,q)*h*(1-h)*x(i,jj));
          
           totslope=(totslope+(h-y(i))*x(i,j));
           toterror=(toterror+-y(i)*log(h)-(1-y(i))*log(1-h));         
        end       
   toterror=toterror/numtrainsam;
   theta(j)= theta(j)-H\totslope;
    end
    prevtheta=theta;
      errorperiteration(t)=toterror/j;
end
 
Last edited by a moderator:

Answers and Replies

  • #2
34,509
6,193
I assume you're asking about this loop.
Matlab:
for i=1:m&&q=1:numfeature
              z=0;
           for jj=1:numfeature
               z=z+prevtheta(jj)*x(i,jj);
           end
           h=1.0/(1.0+exp(-z));
           H=H+(x(i,q)*h*(1-h)*x(i,jj));
          
           totslope=(totslope+(h-y(i))*x(i,j));
           toterror=(toterror+-y(i)*log(h)-(1-y(i))*log(1-h));         
        end
Why is m in there? It's not used in that for loop, and it's not used outside the loop.
 
  • Like
Likes jedishrfu
  • #3
12,366
6,112
In general, you would either use separate loops if they vary independently or make one dependent on the other.

Say m varies from 1 to 10 and n varies from 4 to 40

Then loop on m and compute n = 4*m inside the loop.
 
Last edited:
  • #4
35,119
11,358
What do you want to happen if m and numfeature are not the same value?
 
  • #5
1,367
61
It helps if you say in words what you want to do. In MATLAB the syntax for for loop is

Code:
for ii=intialValue: stepSize: maxValue
I don't think you can include a variable in the stepSize option. What do you want to do with this for loop?
 
  • #6
34,509
6,193
I don't think you can include a variable in the stepSize option.
I'm fairly certain that you can use variables for all three: initVal, stepVal, and endVal. I don't have matlab, so I can't confirm this.

However, the for loop body can't change the value of the index variable (the loop control variable).
 
  • #7
1,367
61
I think you can use variables in the all three, too, but I don't think you can use the following syntax

Code:
initialValue=1;
endValue=10;
for ii=initialValue:m=0.5:endValue
as the OP tried to do.
 
Last edited:
  • #8
34,509
6,193
I think you can use variables in the all three, too, but I don't think you can use the following syntax

Code:
initialValue=1;
maxValue=10;
for ii=initialValue:m=0.5:endValue
as the OP tried to do.
The problem is the "m=" part.
I believe this would be fine:
Matlab:
initVal=1;
stepVal = 0.5
endVal=10;
for ii=initVal : stepVal : endVal
;; loop body
end
 
  • Like
Likes EngWiPy

Related Threads on Matlab -- how can i use a FOR loop if I have 2 variables changing

Replies
2
Views
1K
Replies
4
Views
8K
Replies
19
Views
17K
Replies
0
Views
3K
Replies
1
Views
2K
  • Last Post
Replies
3
Views
3K
Replies
3
Views
2K
  • Last Post
Replies
1
Views
802
Top