###Matlab小笔记###

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...');
end
nsize=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;
end
if 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 indicator
if 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,:)=[] % ok
cell{2,:}=[];% error
12 工作空间只保留指定变量
clearvars -except X_Train Y_Train ;%只保留X_Train 和 Y_Train变量。
13 匿名函数

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

function output = func1(input1,input2)
f = @(u,v)u+v;

% once
val = f(1,2);
% twice
val2 = 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));
判断两个集合是否相等

例如

set1 = {'1','2','4','6'};
set2 = {'2','4','1','6'};

% setdiff(a,b) 表示a 减去 b
if isempty(setdiff(set1,set2))&& isempty(setdiff(set2,set1))
    disp('they are equal!')  
end
matlab imshow函数

matlab中显示图像的为:

imshow(img);
imshow(img,[low high]);

自动给变量命名

i = 3
eval(['trainDistribution',num2str(i)]);

紧凑的保持fig为图片

imshow(img,'border','tight')
saveas(gca,'paper2/examples1.png','png');
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值