作业帮 > 综合 > 作业

Matlab中出现Error using ==> *Inner matrix dimensions must agree

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 16:22:18
Matlab中出现Error using ==> *Inner matrix dimensions must agree.
程序如下:
m=0:pi/50:2*pi;
n=0:pi/50:pi;
hold on
No=150;
xn=1000*rand(No,1);
yn=1000*rand(No,1);
zn=1000*rand(No,1);
v=109.88;
t=-1;
while t
x=r*sin(n)*cos(m)+xn(i);语句中,sin(n)和cos(m)中的n、m是个数组,当然会出现数组维数不一致的现象了.可以改为:
x=r*sin(n(i, 1))*cos(m(i, 1))+xn(i);
但是,您在语句m=0:pi/50:2*pi;n=0:pi/50:pi;中,规定的m、n数组的长度也不一致,要统一过来.
其他的几行语句按上述方法修改就可以了.
再问: 改过后又出现???Index exceeds matrix dimensions. 指数超过矩阵维。是什么情况?
再答: 试一下以下程序,原程序中,m、n是列向量,其他数据是行向量,当然会出错了,还有plot命令只能绘制2维图像,不能绘制3维图像的。matlab是基于矩阵的运算,编程时要注意统一矩阵和向量的形式。 clear all; clc; m=0:pi/50:2*pi; n=0:pi/50:2*pi; hold on No=length(m); xn=1000*rand(No,1); yn=1000*rand(No,1); zn=1000*rand(No,1); x(No,1) = 0.0; y(No,1) = 0.0; z(No,1) = 0.0; m=m'; n=n'; v=109.88; t=-1; while t