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!");

posted on 2016-09-29 16:47  Raby_Draby  阅读(157)  评论(0)    收藏  举报

导航