一、数组和矩阵
注意 逗号 和 分号 的区别

向量生成方式:

传统方式:行向量 :空格,逗号
列向量 :分号,回车

函数方式

x = linspace(a,b,n)

  等分关系,从a 到 b, n等分。n默认为100

 x = logspace(a,b,n)

  生成[10^a,10^b]之间的数n个。n默认为50

二、二维数组

直接创建:

A = [1 2 3; 4 5 6]

  

函数生成:

ones(m,n)     %全部为1
eye(m,n) %主对角线为1
zeros(m,n) %全部为0
% 随机数系列:
rand(m,n) %生成均匀分布的伪随机数,分布在[0,1]之间
randn(m,n) %生成标准正态分布的伪随机数,均值为0,方差为1
randi(max,m,n) %生成全为整数的m行n列随机数,数值分布在闭区间[1,max]
randi([imin,imax],m,n) %生成全为整数的m行n列随机数,数值分布在闭区间[imin,imax]
% 以上函数若只有一个参数,则表示为n行n列

三、数组的大小

size函数 测试数组或矩阵的大小

d = size(数组名)

d 为返回值,为一个行向量  d = [m n]

 x = [3 2];
d = size(x)

 >> d =
     1  2
  表示 x 是一个1行2列的向量

x = ones(3,4,5);
d = size(x)

  

[m,n] = size(数组名)

m返回行数,n返回列数

  x = [4,5,6];
[m,n] = size(x)

length函数  返回数组中尺度较大维度的长度

形式:
  空        返回0
  标量       返回1
  向量      返回实际个数
  多为数组    返回较大维度

a = [];
length(a) b = [3];
length(b) c = [1 2 3 4 5];
length(c) d = ones(4,5);
length(d)

  

numel函数  返回数组中总的元素的个数

% m行n列,则总个数为m*n
a = ones(4,5);
numel(a)

  

四、索引

双下表索引

A = magic(6); % 行,列,对角线上的和都是相等的
A(4,3)

单下表索引

% 数组名(所在序号)
% 列优先排序
A = [ 1 3 54; 5 6 7; 89 0 7 ];
A(7)

双下标索引转换为单下标索引

% 方法
% 单下表索引 = sub2ind(size,m,n)
% size数组大小: size(数组名) A = [ 1 3 54; 5 6 7; 89 0 7 ];
ans1 = A(3,2)
num = sub2ind(size(A),3,2)
ans2 = A(num)

  利用sub2ind(size,m,n) 函数可以 将二维数组当成一个一维数组来进行处理

单下标索引转换为双下标索引

% 方法
% [行,列] = ind2sub(size,num)
% 数组大小: size(数组名) A = magic(7)
[m,n] = ind2sub(size(A),13)
ans1 = A(13)
ans2 = A(6,2)

  

五、 数组扩展

 cat( ) 函数

% 扩展结果 = cat(标识,数组1,数组2,...)
% 标识:1(表示按列排) 组合数组 必须有相同列
% 或2(表示按行排)组合数组 必须有相同行 A = ones(3,4);
B = zeros(2,4);
C = cat(1,A,B)

  

A = ones(3,4);
B = zeros(3,5);
C = cat(2,A,B)

 

 vertcat( )函数

% 扩展结果 = vertcat(数组1,数组2,...)
% 将多个数组在垂直方向上组合在一起
% 相当于:cat(1,数组1,数组2,...) 必须要列数一致 A= ones(3,4);
B = zeros(2,4);
C = vertcat(A,B)

  

horzcat( ) 函数

% 扩展结果 = horzcat(数组1,数组2,...)
% 将多个数组在水平方向上组合
% 相当于: cat(2,数组1,数组2,...) 必须行数要一致 A = ones(4,5);
B = eye(4,3);
C = horzcat(A,B)

  

索引扩展

% 直接指定当前数组外的一个位置,并对其进行赋值。
% 确保数组以最小代价完成扩展。 A = eye(3)
A(2,5) = 5 A(4,4) = 9 A(6,6) = 11

  

六、块操作

 repmat( )函数

% 数组B = repmat(数组A,m,n)
A = magic(3)
B = repmat(A,2,3)

  

blkdiag( )函数

% 数组D = blkdiag(数组A,数组B,数组C,...)
% 数组A,B,C,...按照对角线拼接
A = ones(3)
B = magic(4)
C = blkdiag(A,B)

  

kron( )函数

%  数组C = kron(数组A,数组B)
% 最后的结构: C与A一致;
% 每个元素: C与B一致,即C = A对应位置乘以B的每个元素
A = [0 1; 2 3]
B = ones(3)
C = kron(A,B) C = kron(B,A)

  

七、数组裁剪

罗列序号

% 直接将需要保留的序号罗列出来
% 裁剪结果数组 = 原数组(保留的行,保留的列) A = magic(6)
B =A([1 3 6],[ 2,4,5]) C = A([1,3,6],[5,4,2])

 冒号 

% 分类:①区间  ②等差序列  ③全部

% ① 区间:m:n  其中m表示初始值,n表示终止值

A = magic(6)
B =A(1:3,3:6)

  

% ②等差序列   m:k:n  初始值:等差值:终止值

A  = magic(5)
B = A(1:2:5,2:5) % ③全部
% 冒号 :
% 当前索引位置所有能够取得的值。所有行,所有列 A = magic(5)
B = A(1:2:4,:)

删除整行整列

% 格式
% 数组(要删除的行, : ) =[ ];
% 数组( : , 要删除的列) =[ ]; A = magic(7)
A([1:3],:)=[ ]
A(:,[2:5]) = [ ]

  

matlab 基础知识1的更多相关文章

  1. Matlab - 基础知识

    Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...

  2. Matlab--从入门到精通(chapter2 matlab 基础知识)

    Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...

  3. Matlab高级教程_第一篇:Matlab基础知识提炼_02

    第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...

  4. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  5. Matlab基础知识

    一.常用命令:普通的如cd.ls和linux下一样 clc:清除工作窗口中的所有显示内容 clf:清除图形窗口 whos:列出当前工作空间中所有变量,以及它们的名字.尺寸(比如一个矩阵或数组的行列维数 ...

  6. MATLAB基础知识tips

    网络论坛资源: MATLAB中文论坛https://i.cnblogs.com/EditPosts.aspx?opt=1 circshift 移位函数,circshift(A,SHIFTSIZE).S ...

  7. 数学建模--matlab基础知识

    虽然python也能做数据分析,不过参加数学建模,咱还是用专业的 1. Matlab-入门篇:Hello world! 程序员入门第一式: disp(‘hello world!’) 2. 基本运算 先 ...

  8. matlab 基础知识class &lt; superclass_name

    matlab中的class,在matlab中也能够通过创建类的方式实现面向对象编程. 1)类定义 >> classdef (attribute1 = value,...) classnam ...

  9. Matlab学习笔记1—MATLAB基础知识

    1.1  MATLAB系统环境 1.MATLAB操作界面的组成 (1)MATLAB主窗口 (2)命令行窗口:命令行窗口用于输入命令并显示命令的执行结果. (3) 当前文件夹窗口 如何设置当前文件夹呢? ...

  10. Matlab高级教程_第一篇:Matlab基础知识提炼_04

    第八节:几大MATLAB的数据类型 8.1 数值型 8.2 字符和字符串 创建用' ' 8.3 函数句柄 8.4 结构体 创建用. 语法:struct('field', var1,'field2',' ...

随机推荐

  1. 《精通并发与Netty》学习笔记(05 - Google Protobuf与Netty的结合)

    protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等.其特点是不限语言.不限平台.扩展性强 Netty也提供了对Protobuf的天然支持,我们今天 ...

  2. 【VS开发】使用CTabView分割多页卡窗口

    一般书中介绍的是使用CSplitterWnd来拆分窗口实现多视图,CSplitterWnd中的CreateClient可以保存其创建的pCreateContext指针,以便子视图共享Document. ...

  3. SQL ------ JDBC 删除指定的某条记录

    package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...

  4. 纪录一次left join一对多关系而引起的BUG

    纪录一次left join一对多关系而引起的BUG MySQL(11)---纪录一次left join一对多关系而引起的bug BUG背景 我们有一个订单表 和 一个 物流表 它们通过 订单ID 进行 ...

  5. js-转换方式示例

    var person1 = { toLocaleString : function () { return "Baraka"; }, toString : function() { ...

  6. Mysql——通配符和正则表达式的使用

    1.like操作符和百分号通配符 %表示任何字符出现任意次数. 查询出表TABLE中NAME字段中任意位置包含i的行: select * from TABLE where NAME like '%i% ...

  7. flask数据库迁移

    实际操作顺序:1.python 文件 db init2.python 文件 db migrate -m"版本名(注释)"3.python 文件 db upgrade 然后观察表结构 ...

  8. 并不对劲的bzoj4538:loj2049:p3250:[HNOI2016]网络

    题意 有一棵\(n\)(\(n\leq 10^5\))个点的树,\(m\)(\(m\leq 2\times 10^5\))个操作.操作有三种:1.给出\(u,v,k\),表示加入一条从\(u\)到\( ...

  9. Redis基本数据

    Redis Redis是一个速度非常快的非关系数据库(NoSql),它可以存储键(key)与五种不同的值(value)之间的映射.可以将存储的内存的键值对数据持久化到硬盘. Redis 数据结构 Re ...

  10. ptf转图片

    1.spire 官方的有水印,通过引用 //private readonly static PdfDocument doc = new PdfDocument(); //public static S ...