matlab 中矩阵和向量的区别 我有下面一段程序出现这样的情况,请大家帮忙解决一下:
%创建网格点n=200;Theta=linspace(0,pi/2,n);Alfa=linspace(0,2*pi,n);%创建参数f=40000;%频率为40Khza=...
%创建网格点
n=200;
Theta=linspace(0,pi/2,n);
Alfa=linspace(0,2*pi,n);
%创建参数
f=40000; %频率为40Khz
a=0.0125; %换能器半径(m)
%计算参量的值
k=2*pi*f/340;
%计算阵的指向性,Ra1是分子,Ra2是分母
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./Ra2);
plot(Theta,Ra);
%将柱面坐标转换为直角坐标
x=Ra.*((sin(Theta))'*cos(Alfa));
y=Ra.*((sin(Theta))'*sin(Alfa));
z=Ra.*((cos(Theta))'*cos(Alfa-Alfa));
%画出曲线图
mesh(x,y,z);
补充:画出的二维图是正确的,三维图出现下面的错误,
??? Error using ==> mtimes
Inner matrix dimensions must agree.
尝试了很多办法,但是都是不能解决。 展开
n=200;
Theta=linspace(0,pi/2,n);
Alfa=linspace(0,2*pi,n);
%创建参数
f=40000; %频率为40Khz
a=0.0125; %换能器半径(m)
%计算参量的值
k=2*pi*f/340;
%计算阵的指向性,Ra1是分子,Ra2是分母
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./Ra2);
plot(Theta,Ra);
%将柱面坐标转换为直角坐标
x=Ra.*((sin(Theta))'*cos(Alfa));
y=Ra.*((sin(Theta))'*sin(Alfa));
z=Ra.*((cos(Theta))'*cos(Alfa-Alfa));
%画出曲线图
mesh(x,y,z);
补充:画出的二维图是正确的,三维图出现下面的错误,
??? Error using ==> mtimes
Inner matrix dimensions must agree.
尝试了很多办法,但是都是不能解决。 展开
展开全部
clear;clc;
%创建网格点
n=200;
Theta=linspace(0,pi/2,n);
Alfa=linspace(0,2*pi,n);
%创建参数
f=40000; %频率为40Khz
a=0.0125; %换能器半径(m)
%计算参量的值
k=2*pi*f/340;
%计算阵的指向性,Ra1是分子,Ra2是分母
%画曲线图,应该用向量,向量是一维数组;
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./(Ra2+eps));%分母有可能为0,应加上eps
subplot(121)
plot(Theta,Ra);
%画曲面图,应该用矩阵,矩阵是二维数组;
%将球面坐标转换为直角坐标,原坐标应该是是球面坐标,而不是圆柱面坐标
[Theta,Alfa]=meshgrid(Theta,Alfa);
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./(Ra2+eps));%分母有可能为0,应加上eps
x=Ra.*((sin(Theta)).*cos(Alfa));
y=Ra.*((sin(Theta)).*sin(Alfa));
z=Ra.*(cos(Theta));
subplot(122)
mesh(x,y,z)
%创建网格点
n=200;
Theta=linspace(0,pi/2,n);
Alfa=linspace(0,2*pi,n);
%创建参数
f=40000; %频率为40Khz
a=0.0125; %换能器半径(m)
%计算参量的值
k=2*pi*f/340;
%计算阵的指向性,Ra1是分子,Ra2是分母
%画曲线图,应该用向量,向量是一维数组;
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./(Ra2+eps));%分母有可能为0,应加上eps
subplot(121)
plot(Theta,Ra);
%画曲面图,应该用矩阵,矩阵是二维数组;
%将球面坐标转换为直角坐标,原坐标应该是是球面坐标,而不是圆柱面坐标
[Theta,Alfa]=meshgrid(Theta,Alfa);
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./(Ra2+eps));%分母有可能为0,应加上eps
x=Ra.*((sin(Theta)).*cos(Alfa));
y=Ra.*((sin(Theta)).*sin(Alfa));
z=Ra.*(cos(Theta));
subplot(122)
mesh(x,y,z)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
%创建网格点
n=200;
Theta=linspace(0,pi/2,n);
Alfa=linspace(0,2*pi,n);
%创建参数
f=40000; %频率为40Khz
a=0.0125; %换能器半径(m)
%计算参量的值
k=2*pi*f/340;
%计算阵的指向性,Ra1是分子,Ra2是分母
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./Ra2);
subplot(121)
plot(Theta,Ra);
%将柱面坐标转换为直角坐标
[Theta,Alfa]=meshgrid(Theta,Alfa);
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./Ra2);
x=Ra.*((sin(Theta)).*cos(Alfa));
y=Ra.*((sin(Theta)).*sin(Alfa));
z=Ra.*((cos(Theta)).*cos(Alfa-Alfa));
subplot(122)
mesh(x,y,z)
n=200;
Theta=linspace(0,pi/2,n);
Alfa=linspace(0,2*pi,n);
%创建参数
f=40000; %频率为40Khz
a=0.0125; %换能器半径(m)
%计算参量的值
k=2*pi*f/340;
%计算阵的指向性,Ra1是分子,Ra2是分母
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./Ra2);
subplot(121)
plot(Theta,Ra);
%将柱面坐标转换为直角坐标
[Theta,Alfa]=meshgrid(Theta,Alfa);
Ra1=2*besselj(1,a*k*sin(Theta));
Ra2=a*k*sin(Theta);
Ra=abs(Ra1./Ra2);
x=Ra.*((sin(Theta)).*cos(Alfa));
y=Ra.*((sin(Theta)).*sin(Alfa));
z=Ra.*((cos(Theta)).*cos(Alfa-Alfa));
subplot(122)
mesh(x,y,z)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询