Matlab 知识点记录
1.矩阵的变换
A=[1 2 3;
4 5 6;
7 8 9];
B=det(A); %方阵矩阵的行列式,非方阵不行
B=A'; %矩阵的转置
B=inv(A); %非奇异矩阵-逆矩阵
B=pinv(A); %奇异矩阵or非方阵-逆矩阵
A\B=inv(A)*B; %(\)运算
B/A=B*inv(A); %(/)运算
2.quiver向量作图
quiver(x,y,u,v); %在(x,y)处,画向量(u,v)所定义箭头
//x,y,u,v可为一维数组,元素数须一致
quiver(x,y,u,v,scale,'r') %scale为矢量长度,scale=0.2为0.2倍长度,若为0则为全长
//'r'为红色
3.fliplr-rot90 倒序与旋转
To reverse the order of vertices
a=[2 3 5 7 8;
2 4 5 7 9];
b=fliplr(a);%左右翻转
c=flipud(a);%上下翻转
a=[1 2;
3 4];
rot90(a)=[2 4;
1 3];%逆时针旋转90
%rot90(A,k)
%功能:将矩阵(图片)旋转90度
%参数:A——待操作矩阵,k——旋转k*90度
//二维矩阵则所有列倒序
4.struct结构体
a=struct('key',[2 4],'cost',[3 5]); %创建一个含有key和cost分类的结构体a
a.key=[2 4]
a.key(2)=4
//查找元素方法
pQueue=repmat(struct('key',[],'cost',[]),0,1);
//创建一个结构数组
add_element=struct('key',key,'cost',cost);
pQueue=[pQueue;add_element];
//添加新结构体元素到数组pQueue中
5.varargin-case 选择性参数
非必须参数设置示例
xSample=sphereworld_sample(world,'size',10,'distribution','uniform','mean',10);
function [xSample]=sphereworld_sample(world,varargin) %function
%optional parameters
ivarargin=1;
while ivarargin<=length(varargin)
switch lower(varargin{ivarargin})
case 'size'
ivarargin=ivarargin+1;
sz=varargin{ivarargin};
case 'distribution'
ivarargin=ivarargin+1;
distribution=varargin{ivarargin};
case 'mean'
ivarargin=ivarargin+1;
mu=varargin{ivarargin};
otherwise
error(['Argument ' varargin{ivarargin} ' not valid!'])
end
ivarargin=ivarargin+1;
end
6.cvx凸函数优化
凸函数优化工具
cvx_begin
variables u(2,1) a;
minimize(pow_pos(norm(u,2),2)+mPenalty*a*a);
subject to
AAttr*u+bAttr+a <= 0; %可对matrix参数进行优化
ABarrier*u+bBarrier <= 0;
uOpt=u;
aOpt=a;
cvx_end
//部分代码记录
借鉴引用:http://blog.csdn.net/Bertiee/article/details/103934634