资源描述:
《matlab常见问题集锦》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、matlab常见问题集锦更新时间:2014-7-23Q:1.想从矩阵中取任意行的数据,比如A=[1;2;3;4;5;6;7;8],如何从A中任意取4行的数据呢?谢谢!A:nd=randperm(10);fork=1:4a(k)=A(ind(k));end这个是针对你的向量形式,如果是矩阵可以修改一下[m,n]=size(A);ind=randperm(m);a=zeros(4,n);fork=1:4a(k,:)=A(ind(k),:);endQ:2.下面的命令放进命令窗口,matlab死了n=3;I=12;dz=I;forj=1:2*nd1(:,:,j)=one
2、s(n-1,1)+(I-1)*eye(n-1).*rand(n-1)*ones(n-1,1);while(dz>=I
3、
4、dz<=1)d1(:,:,j)=ones(n-1,1)+(I-1)*eye(n-1).*rand(n-1)*ones(n-1,1);fori=1:n-1dz=dz/d1(i,j,j);endendendA:这段代码如果卡死,最大的可能就是while陷入了死循环。说明在fori=1:n-1这段循环结束之后,dz无法满足while的退出条件(可能是太小或太大)。你需要重新检查你的算法和数据。Q:3.find可以查到第一个满足条件的就退出吗?如题,想
5、找矩阵R里第一列中第一个>=t的数,写的程序如下:A=find(R(:,1)>=t)S=A(1,:)D=R(S,:)但是特别浪费时间,所以想问问应该怎么写好。万分感谢!A:利用find的first参数实现:A=find(R(:,1)>=t,1)或A=find(R(:,1)>=t,1,'first')Q:4.关于矩阵赋值的问题想把x(1,1)和x(1,3),x(2,5)位置的数字改成1,请问如何一步实现赋值啊?A:INDs=sub2ind(size(X),[112],[135]);X(INDs)=1;Q:5.关于Psi函数自变量为虚数的问题这个函数Psi(x)的x
6、只能是个实数,我想弄个虚的x进去,怎么办?A:可以用mfun:>>mfun('Psi',1+2*i)Q:6.频域LMS抑制窄带干扰有几个问题:为什么论文中都强误差信号是最后我们想要的抗干扰后的信号?根据网上下的和自己写的程序都存在这样的问题:频域的权值W在某处总是越来越大,甚至到10的十几次方,为什么?通过试验,发现,滤波器的阶数和权重值W有关系,为什么,关系是怎样的?输入信号和期望信号分别是什么的时候,误差信号可以作为抗干扰后的信号输出?我想通过频域LMS去除具有很高能量的点频干扰的谱线,为什么不能实现?A:LMS消噪中自适应滤波器的输入是和噪声相关、和纯净信
7、号无关的信号自适应滤波器的期望响应是纯净信号+噪声消噪结果是取起输出的误差序列。我不太清楚你的很高能量的点频干扰的谱线到底指的什么干扰,是幅度很大的正弦波干扰吗?如果是的话,理论上是可以滤掉的,将步进miu降低点试试。因为miu的取值同信号的能量有关,如果你的信号能量大,miu就必须取小点。Q:7.m文件只能运行一次当我第一次运行m文件成功后,第二次再运行时出现如下提示:Caught"std::exception"Exceptionmessageis:MessageCatalogMATLAB:FileIOwasnotloadedfromthefile.Pleas
8、echeckfilelocation,formatorcontents这个时候也无法打开其它的m文件,该m文件需要处理400个文件,是不是因为处理文件过多?请高手看看是怎么回事,多谢!!A:bemorespecific.1.ifyouloadlessthan400,doesitcrash?2.doesitcrashifyourunningothermfile.3.versionofyourmatlab4.howbigisyourram.5.didyouremembertoclosefile,clearvariablesafteronefileisprocesse
9、d.6.checkyourmemorycomsumptionduringworkingprocess.whendoesitcrush,howmuchmemoryyouareused.Q:如果文件小于400,有时出现这种情况,有时不出现,运行其它m文件没有问题,我的matlab版本是2012a的,内存是2G,运行之后,不能清除变量,内存占用不是很大,不到60%,如果再运行这个m文件运行一次,就得关闭matlab,然后再运行,每次都是关了之后再打开,感觉太麻烦,不知是怎么回事?A:如果再运行这个m文件运行一次,就得关闭matlab《-----你需要把这句话在仔细解释
10、一下运行完了得到结果了为