用matlab编程一幅数学图像

用matlab编程一幅数学图像,matlab,Matlab,我被困在函数程序(不是主程序)上,它必须绘制一个显示几个垂直正弦曲线的3D图形 不幸的是,我得到了一个计划,而不是窦状曲线。我不知道为什么它不工作,我一直在试图找出什么问题,在2小时内…请帮助 多谢各位 %fonction sinus_vertical: function img=sinus_vertical(N,M) w=2*pi; t=1:0.1:N; for j=1:M for i=1:N for k=1:N img(i,j)=sin(w*t

我被困在函数程序(不是主程序)上,它必须绘制一个显示几个垂直正弦曲线的3D图形

不幸的是,我得到了一个计划,而不是窦状曲线。我不知道为什么它不工作,我一直在试图找出什么问题,在2小时内…请帮助 多谢各位

%fonction sinus_vertical:
function img=sinus_vertical(N,M)
w=2*pi;
t=1:0.1:N;
for j=1:M
    for i=1:N
        for k=1:N
            img(i,j)=sin(w*t(k));
        end
    end
end
主程序:

%Main Script
img3=sinus_vertical(100,100);
figure(1);
mesh(img3);
colormap gray

对于您想要的,最简单的解决方案是:

function img=sinus_vertical(N,M)
  w=2*pi;
  t=0.1*(1:N);
  img = repmat(sin(w*t)',1,M);
end
如果跳过第三个内部循环,并修改设置
t
,则可以更正原始代码。 因此正确的代码是:

function img=sinus_vertical(N,M)
    w=2*pi;
    t=0.1*(1:N);
    for j=1:M
        for i=1:N
            img(i,j)=sin(w*t(i)); % or j, depending on what direction you want the sin.
        end
    end
end
说明:
我用
k
编写了“不需要”循环,因为如果需要

for k=1:N
  img(i,j) = sin(w*t(k))
end

这与写入
img(i,j)=sin(w*t(N))
相同。也就是说,您可以将所有图像像素设置为相同的值。

对于您想要的,最简单的解决方案是:

function img=sinus_vertical(N,M)
  w=2*pi;
  t=0.1*(1:N);
  img = repmat(sin(w*t)',1,M);
end
如果跳过第三个内部循环,并修改设置
t
,则可以更正原始代码。 因此正确的代码是:

function img=sinus_vertical(N,M)
    w=2*pi;
    t=0.1*(1:N);
    for j=1:M
        for i=1:N
            img(i,j)=sin(w*t(i)); % or j, depending on what direction you want the sin.
        end
    end
end
说明:
我用
k
编写了“不需要”循环,因为如果需要

for k=1:N
  img(i,j) = sin(w*t(k))
end

这与写入
img(i,j)=sin(w*t(N))
相同。也就是说,您可以将所有图像像素设置为相同的值。

垂直正弦曲线是什么意思?你能贴一张图片吗?你说的垂直正弦曲线是什么意思?你能贴一张照片吗?