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.
尝试了很多办法,但是都是不能解决。 展开
2个回答
展开全部
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Sievers分析仪
2024-10-13 广告
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
%创建网格点
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询