for i=1:n-1
for j=1:n-1
for r=1:332
if i + r > 333
data(i+r,:)=0;
*else if i-r = < 0
data(i-r,:)=0;*
else if j+r > 333
data(:,j+r)=0;
else if j-r = < 0
data(:,j-r)=0;
end
end
end
end
end
end
end
Please tell me how I can correct the error at i-r = < 0

 采纳的回答

Walter Roberson
Walter Roberson 2012-2-4

1 个投票

Change the '= <' to '<=' (without the apostrophes.)

9 个评论

i do the correction, but there is one more error, plz tell me how i can correct it
??? Subscript indices must either be real positive integers or logicals.
data(i-r,:)=0;
Your code has (after correction to <= )
else if i-r <= 0
data(i-r,:)=0;
But if i-r <= 0 as found by the "if" test, then i-r is 0 or negative, and you are then trying to use that 0 or negative value as a subscript of "data".
Perhaps you wanted to test if i-r > 0 ?
You have the same problem with all of your "if" tests: you check for something that would be out of range, and when you find it, you use the out-of-range value!
thanks, yet there is one problem doing this
else if i-r > 0
data(i-r,:);
??? Attempted to access data(0,1); index must be a positive
integer or logical.
That would happen if your test was
elseif i-r >= 0
but that cannot happen if your test is
elseif i-r > 0
??? Attempted to access data(0,1); index must be a positive
integer or logical.
Error in ==> file at 30
s=s+data(i+r,j)+data(i-r,j)
That involves code you have not posted above. I would need to see the updated code.
The whole code look like this
n=length(data(1,:));
for i=1:n-1
for j=1:n-1
for r=1:332
if i + r > 333
data(i+r,:)=0;
else if i-r > 0
data(i-r,:);
else if j+r > 333
data(:,j+r)=0;
else if j-r > 0
data(:,j-r);
end
end
end
end
s=s+data(i+r,j)+data(i-r,j)
end
end
end
Your line s=s+data(i+r,j)+data(i-r,j) is outside of any of your "if" tests, so it is going to always be executed. It will cause a problem if i-r is 0 or negative.
Thanks Walter

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2012-2-4

0 个投票

Do you really have a space between the = and the < ? If so, remove it.
Please add the error message. Otherwise we have to guess, what your problem might be.

1 个评论

Error: File: file.m Line: 19 Column: 33
The expression to the left of the equals sign is not a
valid target for an assignment.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by