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 件のコメント

Thomas Murdoch
Thomas Murdoch 2022 年 3 月 1 日
I recently solved this problem and want to visualize the function 'u'. I for some reason cannot resolve the '<' error
Star Strider
Star Strider 2022 年 3 月 1 日
See if the while approach will produce the desired result. I believe you are confusing it with for.
Thomas Murdoch
Thomas Murdoch 2022 年 3 月 1 日
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)
Walter Roberson
Walter Roberson 2022 年 3 月 1 日
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.

サインインしてコメントする。

 採用された回答

David Hill
David Hill 2022 年 3 月 1 日

0 投票

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 件のコメント

David Hill
David Hill 2022 年 3 月 1 日
Alternatively,
[x,y]=meshgrid(linspace(0,1,50));
u = (1/sinh(-pi))*sin(pi*y).*sinh(pi*(x-1));
surf(u,x,y);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by