使用matlab 对矩阵M(i,j,g)的前面两维进行求和,结果表示为Md(g),用Md(g)=sum(M(:,:,g))不对,如何修改?

clc;formatlongL1=3.151*10^(-6);L2=2.660*10^(-6);u0=4*pi*10^(-7);a1=2.525:0.55:13.525;... clc;
format long
L1=3.151*10^(-6);
L2=2.660*10^(-6);
u0=4*pi*10^(-7);
a1=2.525:0.55:13.525;
b1=0.5075:0.018:1.0295;
a=0.001.*a1 ;
b=0.001.*b1 ;
d=0.001:0.001:0.02;
for g=1:1:20
for i=1:1:21
for j=1:1:30
k(i,j,g)=(4*a(i)*b(j)/((a(i)+b(j))^2+d(g)^2))^0.5;
[K(i,j,g),E(i,j,g)]=ellipke(k(i,j,g));
M(i,j,g)=u0*((a(i)*b(j))^0.5)*((2/k(i,j,g)-k(i,j,g))*K(i,j,g)-2/k(i,j,g)*E(i,j,g));
end
end
Mab(g)=1.1*sum(M(:,:,g)) ;/这步错了
K12(g)=Mab(g)/((L1*L2)^0.5);
end
展开
 我来答
刘贺great
2013-01-17 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3829
采纳率:100%
帮助的人:2279万
展开全部
楼主说得不是很清楚,不知道是要求前2维什么形式的和呢?
是“每一片”矩阵的元素的和?还是?希望说清楚些,
不知是不是你说的意思:
clear all;clc;
a=[1,2;3,4];
b=ones(2,2);
c=magic(2);
d=cat(3,a,b,c);
Md=sum(sum(d))
更多追问追答
追问
你好,谢谢你的解答!就是对M(i,j,g)矩阵的其中i=21,j=30(即M(21,30,g))元素进行就是求和。我已经把代码附上了,你看下怎么修改?
追答
原来楼主的东西很是很高深的,我以前在做滤波器时,用过椭圆函数
但是很久的事了,当然不说理论,只说代码,我想我前面的回答已经说了
其实,我也不是很有把握
3维矩阵,就是在一根绳子上挂着一串2维矩阵,你的第3维是20吧
每一片是是21*30吧,你是要求1:20的时候,每一片矩阵的所有元素的和,对吗?
最后的结果是一个1*20的向量?稍微改一下:
clear all;clc;
format long;
L1=3.151*10^(-6);
L2=2.660*10^(-6);
u0=4*pi*10^(-7);
a1=2.525:0.55:13.525;
b1=0.5075:0.018:1.0295;
a=0.001*a1;
b=0.001*b1;
d=0.001:0.001:0.02;
for g=1:length(d)
for i=1:length(a)
for j=1:length(b)
k(i,j,g)=(4*a(i)*b(j)/((a(i)+b(j))^2+d(g)^2))^0.5;
[K(i,j,g),E(i,j,g)]=ellipke(k(i,j,g));
M(i,j,g)=u0*((a(i)*b(j))^0.5)*((2/k(i,j,g)-k(i,j,g))*K(i,j,g)-2/k(i,j,g)*E(i,j,g));
end
end
Mab(g)=sum(sum(M(:,:,g))); %这句改了一下
K12(g)=Mab(g)/((L1*L2)^0.5);
end
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式