MATLAB相关笔记

常用命令

1.clear

  clear用于清除工作空间内容。MATLAB有个基本工作空间,用‘base’标识,同时每打开一个.m文件或函数就会产生一个工作空间。在某个工作空间内调用clear时,只会清除相应的工作空间内的内容,对其余工作空间无影响。若要删除其余工作空间的内容,则需要使用evalin命令。(但验证时,在.m文件中使用此命令仍然删除了所有数据,具体情况需要进一步验证。)

  clear和clear all的区别:clear all会将函数中断点清楚,clear不会。(需要进一步验证)

  clearvars -except var_name:清除除了var_name之外的所有数据。

2.evalin

  evalin命令使用方法:evalin(WS, 'expression'),即在WS工作空间内执行expression的命令,效果类似于eval,其中WS可以为caller或base(不知是否可以用其他的标识)。因此clear函数可以通过evalin调用:evalin('base','clear'),在基本工作空间调用。

3.squeeze

  squeeze函数用于清楚矩阵中多余的维度。多余的维度是指,在矩阵中相应维度的长度仅为1,即A = zeros(2,3,1,4),其中第三维即为多余的维度,长度为1,令B = squeeze(A),得到B矩阵为2*3*4的。

  此函数可用于抽取某个多维矩阵的低维片段。注意,对于多维矩阵,抽取其中的某一部分时,得到的矩阵维数通过如下方式确定:对矩阵A(n1,n2,n3,...,nk),抽取B = A(a1,a2,...,ai,:,...,aj,:,...,ak),则B的维数为最后一个“:”所在的位置。如A = rand(4,2,5,3,3,2),B = A(4,:,2,3,:,1),最后一个“:”在第5维,因此得到的B维数为5维。此时需要得到2维矩阵,则使用squeeze函数即可:B = squeeze(A(4,:,2,3,:,1)),如下所示:

>> A = rand(4,2,5,3,3,2);
>> B = A(4,:,2,3,:,1)

B(:,:,1,1,1) =

0.4691 0.8608


B(:,:,1,1,2) =

0.5597 0.9594


B(:,:,1,1,3) =

0.1423 0.6682

>> B = squeeze(A(4,:,2,3,:,1))

B =

0.4691 0.5597 0.1423
0.8608 0.9594 0.6682

若只是抽取第一维、第二维作为列向量的话,则可以直接得到而不用squeeze函数。

posted @ 2017-03-20 01:59  MetaSiBaL  阅读(230)  评论(0编辑  收藏  举报