In this code i used boolean true and false ,but it's not working. What can i use insted of boolean true and false?

f=imread('image1.jpg');
T = f;
T(T>60) = 255;
imshow(T)
imwrite(T,'C:\Users\VAIO\Documents\MATLAB\iso_image.jpg','jpg');
for i=1:1:M
{
start = false;
for j=1:1:N
{
if ((T<60) && (start=false))
{
temp1=j;
start=true;
}
if((T<60)&&(start=true))
temp2=j;
}
dis[i]=temp2-temp1;
}

Answers (2)

The code in the if-clause is probably wrong. First, you probably want to compare a particular element of T, i.e., T(i,j) against 60. Second, use == to check equality:
if T(i,j) < 60 && start == false
Note that you don't need the extra parentheses in Matlab but you can use them if you consider it to be more readable:
if (T(i,j) < 60) && (start == false)
Same for the other if-clause.

3 Comments

i tried your suggestion but now it shows error 'The expression to the left of the equals sign is not a valid target for an assignment.' indicating where i declare start =false
Could you provide the updated code? Its possible that you are using = operator instead of == operator.
f=imread('image1.jpg');
T = f;
T(T>60) = 255;
imshow(T)
imwrite(T,'C:\Users\VAIO\Documents\MATLAB\iso_image.jpg','jpg');
for i=1:1:M
{
start = false;
for j=1:1:N
{
if T(i,j)<60 && start==false
{
temp1=j;
start=true;
}
if T(i,j)<60 && start==true
temp2=j;
}
dis[i]=temp2-temp1;
}

Sign in to comment.

MATLAB does not use {} to mark blocks. MATLAB uses {} to create cells. MATLAB uses "end" to mark the end of blocks.
For example instead of
for i=1:M { code }
MATLAB uses
for i=1:M; code; end

Categories

Find more on Modeling in Help Center and File Exchange

Asked:

on 26 Jun 2013

Community Treasure Hunt

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

Start Hunting!