matlab_矩阵的灵活操作

矩阵的随心所欲的世界:

  1. 矩阵的生成【创建】
  2. 矩阵的扩充
  3. 矩阵的操作【访问、赋值、删减、变向、抽取】
  4. 矩阵的分块【划分子集】

1.  矩阵的生成

  使用            功能
1) 特殊字符 [ ]    直接输入构造数组
2) zeros()函数    构造全0数组

2.  矩阵的扩充

使用 特殊字符 [ ]
Example:
  原矩阵A,需要扩充的元素B,C
D = [A,B,C] 扩充列
D = [A;B,C] 扩充行
...【扩充符合矩阵的大小性质均可】
错误操作:
A = [1,2]
B = [1;2]
C = [A,B]?(显然不符合矩阵的性质)

3.  矩阵的操作

  1)访问

A(i,j)使用 特殊字符()  下标索引
如:访问二维数组(矩阵)A

  A(i,j)

  2)赋值

希望的操作     语句     注释

对单个元素赋值    A(m , n) = b  【对A第m行,第n列的元素赋值】
对某单行赋值     A(: , m) = b   【对第m列赋值】|| A(1:end , m) = b
对某单列赋值     A(m , :) = b   【对第n行赋值】|| A(m , 1:end) = b
对某一部分子矩阵   A(a:b , m:n) = B 【对A中以A(a,m),A(b,n)元素为对角形成的子矩阵赋值】

  3)删减

希望的操作     语句     注释

关键:元素值=0 不等同于 元素=空
删除行 A(:,m) = [] 删除A的第m列
删除列 A(m,:) = [] 删除A的第m行

    4)变向【翻转】

flip     翻转元素顺序
fliplr      将数组从左向右翻转   每行操作
flipud       将数组从上向下翻转 每列操作

4.  矩阵的分块

    渴望            操作

对M×N矩阵X分块(子集)T1,T2
纵着切一刀              T1 = X(: , 1:m),T2 = X(: , m+1:N) 第m列与第m+1列为分割列
横着切一刀              T1 = X(1:m , :),T2 = X(m+1:M , :) 第m行与第m+1行为分割行

对M×N矩阵X分块(任意)        同理

原文地址:https://www.cnblogs.com/WJWnature/p/11203891.html

时间: 2024-10-12 20:25:18

matlab_矩阵的灵活操作的相关文章

对于时间的灵活操作

import java.util.*; class  Demo3 { public static void main(String[] args)  { Calendar c=Calendar.getInstance(); //c.set(2012,4,23);      //可以设置当前的时间 c.add(Calendar.MONTH,-7); //往前推7个月   c.add(Calendar.YEAR,-1);//往前推一年  printCalendar(c); } public stat

《学习opencv》笔记——矩阵和图像操作——cvGEMM,cvGetCol,cvGetCols and cvGetDiag

矩阵和图像的操作 (1)cvGEMM函数 其结构 double cvGEMM(//矩阵的广义乘法运算 const CvArr* src1,//乘数矩阵 const CvArr* src2,//乘数矩阵 double alpha,//1号矩阵系数 const CvArr* src3,//加权矩阵 double beta,//2号矩阵系数 CvArr* dst,//结果矩阵 int tABC = 0//变换标记 ); tABC变换标记及其对应的含义 CV_GEMM_A_T 转置 src1 CV_GE

《学习opencv》笔记——矩阵和图像操作——cvDet,cvDit,cvDotProduct,cvEigenVV and cvFlip

矩阵和图像的操作 (1)cvDet函数 其结构 double cvDet(//计算矩阵的行列式 const CvArr* mat ); 实例代码 #include <cv.h> #include <highgui.h> #include <stdio.h> #include <iostream> using namespace std; int main() { double va[] = {1,0,0,0,2,0,0,0,3}; CvMat Va=cvMa

OpenCV &mdash;&mdash; 矩阵和图像操作

cvAbs , cvAbsDiff , cvAbsDiffS cvAdd , cvAddS , cvAddWeighted(可添加权重) #include <cv.h> #include <highgui.h> int main(int argc,char** argv) { IplImage *s1,*s2; s1=cvLoadImage("wukong.jpg",CV_LOAD_IMAGE_COLOR); s2=cvLoadImage("test.

《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

《学习opencv》笔记——矩阵和图像操作——cvAdd、cvAddS and cvAddWeighted

矩阵和图像的操作 (1)cvAdd函数 其结构 void cvAdd(//图像加和 const CvArr* src1,//第一个原矩阵 const CvArr* src2,//第二个原矩阵 CvArr* dst, //存放矩阵 const CvArr* mask = NULL: //控制点 ); 就是单纯的将两个图像加和,mask变量控制加和的元素点,相当于"开关的作用"; 程序实例 #include <cv.h> #include <highgui.h> #

《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor

矩阵和图像的操作 (1)cvCrossProduct函数 其结构 void cvCrossProdust(//计算两个三维向量的叉积 const CvArr* src1, const CvArr* src2, CvArr* dst ); 实例代码 #include <cv.h> #include <highgui.h> #include <stdio.h> #include <iostream> using namespace std; int main()

《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS

矩阵和图像的操作 (1)cvCalcCovarMatrix函数 其结构 void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵 const CvArr** vects,//给定向量 int count,//给定向量的组数 CvArr* cov_mat,//结果矩阵 CvArr* avg,//根据flag得到结果 int flags//标记位 ); 标记位参数值极其意义 标志参数的具体标志值 意义 CV_COVAR_NORMAL 计算均值和协方差 CV_COVAR__SCRAM

《学习opencv》笔记——矩阵和图像操作——cvSum,cvSVD,cvSVBkSb,cvTrace,cvTranspose,cvXor,cvXorS and cvZero

矩阵和图像的操作 (1)cvSum函数 其结构 CvScalar cvSum(//计算arr各通道所有像素总和 CvArr* arr//目标矩阵 ); 实例代码 #include <cv.h> #include <highgui.h> #include <stdio.h> #include <iostream> using namespace std; int main() { IplImage *src1,*dst1,*dst2,*dst3,*dst4;