Matlab小笔记

来源:互联网 发布:顶级时尚杂志知乎 编辑:程序博客网 时间:2024/06/05 00:37

1. fix 截断

fix(num)

删除 number 参数的小数部分并返回以整数表示的结果。

 i=1+fix(365*rand(1,1));%产生[1,365]之间的一个随机数

2. waitforbuttonpress 等待按钮按下

w=waitforbuttonpress;

3. tic,toc 计时

tic;func(param);time0=toc;disp(['用时' num2str(time0) 's']);

4.waitbar 进度条

clc;clearvars;close all;option.isShowbar=true;if option.isShowbar    hWait = waitbar(0, 'doing some work...');endnsize=10000;mat=zeros(nsize,nsize);for i = 1:nsize    if option.isShowbar        waitbar(i/nsize, hWait);    end    %do some work    mat(i,:)=(i-1)*nsize+1:i*nsize;endif option.isShowbar    close(hWait);end

这里写图片描述

5.使用同一个值初始化矩阵

initialize a MxN matrix with the same number

%方法1:% Make a 3-by-8 matrix of 9s:A(1:3,1:8) = 9 %如果上面存在一个矩阵A,那么将带来问题,之前的取值只是会覆盖%方法2:A=ones(M,N)*yournumber;%方法3:A=repmat(yournumber,M,N);%方法4:A=zeros(M,N);A(:)=yournumber;%方法5:A = uninit(M,N);A(:) = some_number;%方法6:a = 12;A = a(ones(M, N));

6 找最大值及其位置

方法1:s1=find(A==max(max(A)));%找到位置,返回的是连续存储的位置索引号[m1,n1]=ind2sub(size(A),s1);%将位置索引转换为下标,即[nrows,ncols]方法2[v,s2]=max(A(:));%找到最大值和所在的位置索引[m2,n2]=ind2sub(size(A),s2);%将位置索引转换为下标索引[h,w]

7 mexPrintf/mexErrMsgTxt

printf("the value of A is :%d ",A);
mexPrintf("the value of A is :%d ",A);
mexErrMsgTxt("must be a double matrix!");

8. unique 取集合中不重复的元素构成向量

label=[1 1 2 2 3 3];u=unique(label);nclass=length(u);

因此在编写程序时,例如训练的时类别的标签,我们就可以通过这样获得类别的数目。

9 storage判断内存中是否能够容纳,例如多大的矩阵;

% 如果小于100MB,例如当data存储每个叶子结点数据data的boolen indicatorif storage([m n])<100    dataix=zeros(m,n);else    dataix=sparse(m,n);end

10 rmfield 移除结构体struct(或者结构体数组中)每个属性

例如data是一个结构体数组

data=rmfield(data,'landmark');

11 cell 移除某一行

cell(2,:)=[] % okcell{2,:}=[];% error

12 工作空间只保留指定变量

clearvars -except X_Train Y_Train ;%只保留X_Train 和 Y_Train变量。

13 匿名函数

匿名函数,其类似于内联函数。

function output = func1(input1,input2)f = @(u,v)u+v;% onceval = f(1,2);% twiceval2 = f(2,3);end 

14 找到某个值的下标索引

ind = find(A(:)==value)

15 assert 函数

a = 3;b = 4;assert(a==b,'a 不等于 b,请检查');

16 计算每个变量的占用空间

利用whos函数

train_info = whos('gl_data');fprintf(' %s大小为:%.2f M\n',train_info.name,train_info.bytes/(1024^2));
1 0
原创粉丝点击