Matlab 如何在矩阵中组合两个大小不同的向量?

Matlab 如何在矩阵中组合两个大小不同的向量?,matlab,Matlab,我是MATLAB新手,我对一个可能是基本概念的东西有困难。我真的非常感谢任何见解和帮助 我必须定义函数z=10*x*sin⁡0范围内的2*y≤ x≤ −1, 0 ≤ Y≤ 3.我被特别要求有一个向量,由11个相等间距的值0组成≤ x≤ −1和另一个由31个等间距值0组成的向量≤ Y≤ 3.然后我必须定义一个31×11的矩阵z,其条目为zm,k=10*xk*sin2*ym 我不知道m和k有什么关系。每当我尝试将x和y插入z时,就会收到一条关于内部尺寸的错误消息 我所拥有的只是: x=-1:.1:0

我是MATLAB新手,我对一个可能是基本概念的东西有困难。我真的非常感谢任何见解和帮助

我必须定义函数z=10*x*sin⁡0范围内的2*y≤ x≤ −1, 0 ≤ Y≤ 3.我被特别要求有一个向量,由11个相等间距的值0组成≤ x≤ −1和另一个由31个等间距值0组成的向量≤ Y≤ 3.然后我必须定义一个31×11的矩阵z,其条目为zm,k=10*xk*sin2*ym

我不知道m和k有什么关系。每当我尝试将x和y插入z时,就会收到一条关于内部尺寸的错误消息

我所拥有的只是: x=-1:.1:0 y=0:.1:3

提示:请参阅ndgrid命令


不要忘记中的点。*当矩阵元素乘以元素时

这就是解决方案吗?!请看一看元素操作符*

x = -1:.1:0;
y = 0:.1:3;
[X,Y] = ndgrid(x,y);
z = 10*X.*sin(2*Y);
mesh(z);

也许这对你有帮助!如果我理解正确:

x=-1:0.1:0;
y=0:0.1:3;
take_size_x=size(x,2);
take_size_y=size(y,2);

for j=1:take_size_y
    for i=1:take_size_x
z(j,i)=10*x(i)*sin(2*y(j));
    end
end

我真的不知道我在做什么。这是我的程序:x=-1:.1:0;y=0:1:3;[X,Y]=ndgridx,Y;z=10.*X*sin2*Y ndgrid命令得到了两个11x31矩阵,但我仍然使用==>mtimes得到了错误。内部尺寸必须一致。不应使用*运算符。您应该使用.*和其他元素运算符。doc ndgrid中的示例说明了这一点,并且与您正在执行的操作非常相似。@user3266487实际上,您似乎已经尝试将其用于第一次乘法。然而,与第二次乘法不同的是,这是一个标量乘法,所以两个运算符都是有效的。我的错误。我在这里输入z时忘记了一个句号。我正在使用。*运算符。这是我第一次访问这个网站,所以请原谅我的天真问题,但什么是ngrid博士,我如何访问它?我在这个网站上搜索它,发现了一些与python相关的东西。这就是您所说的吗?如果您在MATLAB命令行执行doc ndgrid,它将显示关于ndgrid命令的HTML文档,比ndgrid提供的帮助更详细。
x=-1:0.1:0;
y=0:0.1:3;
take_size_x=size(x,2);
take_size_y=size(y,2);

for j=1:take_size_y
    for i=1:take_size_x
z(j,i)=10*x(i)*sin(2*y(j));
    end
end