为什么surf函数错误使用?数据维度必须一致?

发布网友

我来回答

2个回答

热心网友

为什么matlab中出现维度不一致的错误,什么时候加点什么时候不加点?又该怎么实现三维图的绘制?

这个问题我们可以分下列几个方面来说明:

一、为什么matlab中出现维度不一致的错误

出现这样问题的原因有,给出的数据长度不统一;数组变量同时出现行向量和列向量;数组运算没有使用好点运算符(这个是题主出现问题的主要原因)

二、什么时候加点什么时候不加点?

什么时候加点,当表达式带有数组变量运算符前需加点,根据题主提供的函数表达式,经分析使用的点运算符不完整,应为

s5=(sin(ay).*(cos(ay).^2./(cos(ay).^2.*cos(az).^2 - cos(az).^2 + 1).^2 + 1).^(1/2))./(cos(ay).*(sin(az).^2./(cos(ay).^2.*cos(az).^2) + 1))

三、怎么实现三维图的绘制?

1、确定ay、az的范围

ay=-10:10;az=-10:10;

2、对ay、az进行数据网格化

[ay,az]=meshgrid(ay,az);

3、计算s5值

4、使用surf函数,绘制其三维曲面图

5、标注坐标轴名称

xlabel('ay');ylabel('az');zlabel('s5');

6、运行结果

热心网友

当x,y,z个数不同,也就是维数不同时,可这样:
x=linspace(1,5,20);y=linspace(2,7,30);[x,y]=meshgrid(x,y);z=1./(x.^2+y.^2);mesh(x,y,z)
这样就能出图.且在乘,除,乘方,开方运算上加点.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com