MATLAB中如何利用小程序循环保存数组将小数组存到元胞数组里?

扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
请问如何使用MATLAB进行元胞数组批量提取数据.我的元胞数组是1行209列的,假设我要提取其中每个元胞中的第1列和第209列,并将其合并成一个新的矩阵,请问怎么操作,我的元胞数组是1行209列的,假设我要提取其中每个元胞中的第1列和最后1列,并将其合并成一个新的矩阵,请问怎么操作,
扫二维码下载作业帮
2亿+学生的选择
假设A是209个元素的元胞数组,并且每个元素矩阵的行数相同.B=[];for&n=1:length(A)&&&&B=[B,A{n}(:,[1&end])];%我不知道你想怎么合并,我就按A{1}两列A{2}两列...A{n}两列这样的顺序合了,不是的话你自己改end
你好,谢谢你的回答,不过我提示了部分错误的信息:
??? for?n=1:209
Error: Unexpected MATLAB operator.
for?n=1:209我好想没有写这个吧,for和n中间哪来的问号
额。。。我确实是运行了这个,
不过貌似还是这个问题。。。我这里的data就是A。。。
??? for?n=1:length(data)
Error: Unexpected MATLAB operator.
里面每个小的矩阵都是180行72列的。。。
谢谢。。。
不要直接复制,你手动输入一下命令。网上答题有时候网站会自己添加一些我们看不到的字符。
真的成功了 非常谢谢你!!!我也想知道要是我不是合并他们的列,而是合并他们的行需要修改什么地方呢。。。比如我要合并胞元中每个矩阵的第一行和最后一行,也把它做成一个大的矩阵。。。非常感谢,我再加点分,很晚了。。。ORZ
合并行B=[];for&n=1:length(A)&&&&B=[B;A{n}([1&end],:)];end
为您推荐:
其他类似问题
扫描下载二维码MATLAB元胞数组创建与访问_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MATLAB元胞数组创建与访问
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 3795|回复: 10|关注: 0
急~~大侠救命,怎么正确将while循环中的数据存入数组??
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
各位大侠,我有程序如下,想把wave 和对应的res存入A中的第一列和第二列,但我运行了以下的程序后,得到的A除了第一行和最后一行,中间全部为零,其中只有最后一行的数值是正确的。请问是哪里出了问题呢?该怎么修改?
还有,如果我想以wave 为x轴,res为y轴作出曲线图,该怎么实现呢?
本人刚接触matlab,还是超级大菜鸟,研究了好久也没找出问题在哪,交稿日期在即,请各位大侠出手相救,不胜感激!
while wave&1.5
& & wave=wave+0.1
& & i=i+1;
Pin=1e-6;& &&&
A0=(20e-4)*(20e-4);& &
d1=0.7;& && &
d2=2.6;& &&&
xs=0.4e-4;& &
xnepi=4.5e-4;&&
xbn=0.8e-4;& &
Naa=6.25e19;&&
Nepi=1e15;&&
V=-2.0;& && &
q=1.602e-19;& &&&
h=6.62607e-34;&&
K=1.38e-23;& && &
ni=1.5e10;
tph=3.65e4;
tnh=3.9e4;& &
Br=3.56e-13;
Cap=9.9e-32;
Can=2.8e-31;
tpp=1/(tph+Br*Nepi+Cap*Nepi*Nepi);
tnn=1/(tnh+Br*Naa+Can*Naa*Naa);
unn=1350/(1+(Naa/ni)^(-0.06));
upp=475/(1+(Nepi/ni)^(-0.05));
Dnn=unn*K*T/q;
Dpp=upp*K*T/q;
Lnn=sqrt(Dnn*tnn);
Lpp=sqrt(Dpp*tpp);
tp=1/(tph+Br*Nbn+Cap*Nbn*Nbn);&&
up=475/(1+(Nbn/ni)^(-0.05));
Dpbn=up*K*T/q;
Lpbn=sqrt(Dpbn*tp);
dEg=0.45*sqrt(Nbn/1e21);
s=(Dpbn*Nepi*exp(q*dEg/K/T)*coth(xbn/Lpbn))/(Lpbn*Nbn);
np0=ni^2/N& &
pn0=ni^2/N& &
freq=(3e8)/(wave*1e-6);
%吸收系数a(HP公式、11参数公式)
m0=-21.8321;
m1=488.32905*
m2=-*wave^2;
m3=*wave^3;
m4=-*wave^4;
m5=*wave^5;
m6=-*wave^6;
m7=*wave^7;
m8=-*wave^8;
m9=*wave^9;
a=10^(m0+m1+m2+m3+m4+m5+m6+m7+m8+m9); %unit cm-1
%反射系数R
Delta1=2*3.*d1/
Delta2=2*3.*d2/
A=(n0-n3)*cos(Delta1)*cos(Delta2)+(n1*n3/n2-n0*n2/n1)*sin(Delta1)*sin(Delta2);
B=(n0*n3/n1-n1)*sin(Delta1)*cos(Delta2)+(n0*n3/n2-n2)*cos(Delta1)*sin(Delta2);
C=(n0+n3)*cos(Delta1)*cos(Delta2)-(n1*n3/n2+n0*n2/n1)*sin(Delta1)*sin(Delta2);
D=(n0*n3/n1+n1)*sin(Delta1)*cos(Delta2)+(n0*n3/n2+n2)*cos(Delta1)*sin(Delta2);
R=(A^2+B^2)/(C^2+D^2);
%表面单位面积入射光子通量
F0=(1-R)/(h*freq);
vbi2=(K*T/q)*log(Naa*Nepi/(ni^2));
w2=sqrt((2*1.05e-12/q)*((Naa+Nepi)/(Naa*Nepi))*(vbi2-V-2*K*T/q));
w2n=Naa*w2/(Naa+Nepi);
w2p=Nepi*w2/(Naa+Nepi);
x1=xs-w2p;
x2=xs+w2n;
%for P+区电流密度
c11=a*F0*tnn/(Dnn*tnn*a*a-1);
c12=x1/sqrt(Dnn*tnn);
c13=sqrt(Dnn/tnn);
c14=exp(q*V/K*T)-1;
c15=sqrt(Dnn*tnn);
d_1=(c11*exp(c12)*((c13+s1)*exp(-a*x1+c12)-s1-a*Dnn)+np0*exp(2*c12)*(c13+s1)*c14)/((Dnn+c15*s1)*exp(2*c12)+Dnn-c15*s1);
d_2=-(c11*exp(-c12)*((c13-s1)*exp(-a*x1-c12)+s1+a*Dnn)+np0*exp(-2*c12)*(c13-s1)*c14)/((Dnn-c15*s1)*exp(-2*c12)+Dnn+c15*s1);
d_3=a*c11*exp(-a*x1);
Jp=-q*Dnn*(d_1+d_2+d_3);
%P+/N-EPI耗尽区的光电流密度
Jw2=q*F0*exp(-a*x1)*(1-exp(-a*w2));
%for非耗尽N-EPI区与BN+区电流密度
c21=a*F0*tpp/(Dpp*tpp*a*a-1);
c22=sqrt(Dpp/tpp);
c23=sqrt(Dpp*tpp);
e_1=(c21*((s-c22)*exp(-a*x2+2*x2/c23)-(s-a*Dpp)*exp(-a*xn+(x2+xn)/c23))+pn0*exp(2*x2/c23)*(s-c22)*c14)/((c23*s-Dpp)*exp(2*x2/c23)-(c23*s+Dpp)*exp(2*xn/c23));
e_2=-(c21*((s+c22)*exp(-a*x2-2*x2/c23)-(s-a*Dpp)*exp(-a*xn-(x2+xn)/c23))+pn0*exp(-2*x2/c23)*(s+c22)*c14)/((c23*s+Dpp)*exp(-2*x2/c23)-(c23*s-Dpp)*exp(-2*xn/c23));
e_3=a*c21*exp(-a*x2);
Jnepi=q*Dpp*(e_1+e_2+e_3);
res=Jp+Jw2+Jnepi
A(i,1)=wave
A(i,2)=res
save x.txt A -ascii
05:49 上传
点击文件名下载附件
510 Bytes, 下载次数: 6
<h1 style="color:# 麦片财富积分
有人帮我看一下吗,各位大侠帮帮忙
<h1 style="color:# 麦片财富积分
你的程序太长了,估计没多少人会耐心看完
你可以这样
while wave&1.5
wave=wave+0.1;
ii=wave/0.1;A(1)
<h1 style="color:# 麦片财富积分
关注者: 4
你刚刚接触Matlab就能写出这么长的程序来,水平还是挺高的。但是你描述的问题包括代码最好简化到问题上来,否则不好找出问题和给出答案,三楼给了答案你也没有认为行不行。我替你谢谢三楼的了。
<h1 style="color:# 麦片财富积分
建议你用设置断点,查看i==2时的代码具体运行情况。存矩阵的方式通常为:
while wave &1.5
& &i = i+1;
& &A(i,1) =
& &A(i,2) =
如果不对,应该是你中间的计算的问题。
以wave 为x轴,res为y轴作出曲线图,plot(A(1,:),A(:,2))即可。
<h1 style="color:# 麦片财富积分
关注者: 4
问题的症结所在
我刚才把你的程序运行了一下,找到的症结所在,循环体内有一个变量A,与你后面的重名,你只需要将后面的改成AA就好了(怕你程序体中使用了前面的A的地方太多)。
<h1 style="color:# 麦片财富积分
关注者: 4
绘图就简单了
使用plot(AA(:,1),AA(:,2))就可以了,
<h1 style="color:# 麦片财富积分
原帖由 hyx 于
21:47 发表
我刚才把你的程序运行了一下,找到的症结所在,循环体内有一个变量A,与你后面的重名,你只需要将后面的改成AA就好了(怕你程序体中使用了前面的A的地方太多)。 ...
真是太谢谢你啦!我仔细看了一下,发现真的是这个问题。当时我把res换成一个简单的式子去运行,结果能得到一个正确的数组,但换成原来的又不行,还是我检查不仔细~非常感谢你!
<h1 style="color:# 麦片财富积分
原帖由 hxymatlab 于
20:12 发表
你的程序太长了,估计没多少人会耐心看完
你可以这样
while wave
嗯,我当初自己试的时候也把式子简化了,但是并没有发现问题,所以就整个贴上来啦。昨天没有上论坛,还是谢谢你啦。
<h1 style="color:# 麦片财富积分
原帖由 hyx 于
21:51 发表
使用plot(AA(:,1),AA(:,2))就可以了,
那如果我想把数据导出来,在origin软件中画图,要怎么操作呢?
站长推荐 /2
利用MATLAB进行传感器数据分析
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区

我要回帖

更多关于 php 循环数据存进数组 的文章

 

随机推荐