我想用参数化绘制曲线x = ...,y = ...和z = ...(见下文)。我不断收到错误消息,主要是“不一致的乘法”。这是我的代码:
t = linspace(0,4*%pi)
x = (4+sin(63*t))*cos(3*t)
y = (4+sin(63*t))*sin(3*t)
z = cos(3*t)
param3d(x,y,z)
有人可以解释为什么我收到此错误消息或我的代码应该如何更正?我还尝试将x,y和z定义为函数。
答案 0 :(得分:1)
来自documentation of * operator:
元素乘法表示为
x.*y
。如果x
或y
是标量(1x1矩阵).*
与*
相同。
因此,在您的情况下,公式应该写为(4+sin(63*t)).*cos(3*t)
,因为您希望以元素方式乘以两个数组。没有圆点,星号表示矩阵乘法,由于尺寸不匹配而失败。
示例:
[1, 2] .* [3, 4] // returns [3, 8]
[1, 2] * [3, 4] // error; one can't multiply a 1-by-2 matrix by another 1-by-2 matrix
也可以在这里写3.*t
。因为只有一种方法可以将矢量乘以标量,所以这是多余的。