Can't figure out operator use error

x = linspace(0,1,50);
y = linspace(0,1,50);
i = x(1);
j = y(1);
for i < length(x)
for j < length(y)
u(i,j) = (1/sinh(-pi))*sin(pi*y(j))*sinh(pi*(x(i)-1));
j = j+1;
end
j = y(1);
i = 1 + i;
end
surf(u, x, y)
File: visualization_hmw_3_q_1.m Line: 6 Column: 7
Invalid use of operator.

4 Comments

I recently solved this problem and want to visualize the function 'u'. I for some reason cannot resolve the '<' error
See if the while approach will produce the desired result. I believe you are confusing it with for.
The while approach did work. I have attached my complete code here:
clear all
close all
x = linspace(0,1,50);
y = linspace(0,1,50);
i = 1;
j = 1;
while i <= length(x)
while j <= length(y)
u(i,j) = (1/sinh(-pi))*sin(pi*y(j))*sinh(pi*(x(i)-1));
j = j+1;
end
j = 1;
i = 1 + i;
end
surf(x, y, u)
Is there a particular reason to use while there instead of for ? When you are doing a fixed number of iterations, for is almost always cleaner to code.

Sign in to comment.

 Accepted Answer

x = linspace(0,1,50);
y = linspace(0,1,50);
u=zeros(50);
for i =1:length(x)
for j =1: length(y)
u(i,j) = (1/sinh(-pi))*sin(pi*y(j))*sinh(pi*(x(i)-1));
end
end
surf(x, y,u)

1 Comment

Alternatively,
[x,y]=meshgrid(linspace(0,1,50));
u = (1/sinh(-pi))*sin(pi*y).*sinh(pi*(x-1));
surf(u,x,y);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!