Matlab学习1

Matlab

数据类型

  • 数字
  • 字符和字符串
  • 矩阵
  • 元胞数组
  • 结构体

清空环境变量及命令

cls 	% 清除Command Windows中的所有命令
clear all 	% 清除Workspace*中的所有命令

变量命名

  • 区分大小写
  • 不超63位
  • 字母开头,由下划线、字母和数字组成
  • 见名知意

注释用 %

字符串

abs('a')    % ASCII码
char(97) 
num2str   % number to string
length(str)  % 字符串长度

矩阵

A = [1 2 3; 4 5 6; 7 8 9]
B = A'    %转置矩阵
C = A(:)    %将矩阵A中的每列合并成一个长的列向量
D = inv(A)    %求逆
E = zeros(10, 5, 3) 
E = zeros(size(A))     %生成零矩阵
E(:, :, 1) = rand(10, 5)

rand生成均匀分布的伪随机数,分布在0~1之间

rand(m, n)
rand(m, n, 'double')    %指定精度,还可以为'single'
rand(RandStream, m, n)

randn生成标准正态分布的伪随机数(均值为0,方差为1)

语法同上

randi生成均匀分布的伪随机整数

randi(iMax)  %在区间(0,iMax)
randi(iMax, m, n)
randi([iMin, iMax], m, n)   %在开区间(iMin, iMax)生成m*n的随机矩阵

元胞数组

元胞数组是一种包含名为元胞的索引数据容器的数据类型,其中的每个元胞都可以包含任意类型的数据。元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。通过将索引括在圆括号 () 中可以引用元胞集。使用花括号 {} 进行索引来访问元胞的内容。

A = cell(1, 6)
A[2] = eye(3)    %matlab是从1开始的
A{5} = magic(5)  %magic 魔方,在matlab中生成n阶幻方(横竖斜三个方向的数字和总是相同的)
B = A{5}

结构体

books = struct('name', {{'Machine Learning', 'Data Mining'}}, 'price', [30, 40])
books.name   % 属性
books.name(1)   % cell
book.name{1}    % string

矩阵操作

矩阵的定义和操作

A = [1 2 3 4 5 6]
B = 1:2:9
C = repmat(B, 3, 1)  %把B重复3列1行
D = ones(2, 4)  % 2行4列元素都为1 


矩阵的四则运算

A = [1 2 3 4; 5 6 7 8]
B = [1 1 2 2; 2 2 1 1]
C = B + A    % 加
D = A - B    % 减
E = A * B'    % 乘
F = A .* B    % 点乘
G = A / B     % G * B = A ,  G * B * pinv(B) = A * pinv(B) ,     G = A * pinv(B)    ; pinv()求伪逆(广义逆)
H= A ./ B     % 点除

% 左除和右除
A / B = A * inv(B)
A \\ B = inv(A) * B

矩阵的下标

A = magic(5)
B = A(2, 3)
C = A(2, :)    % 第二行全部元素构成的矩阵
D = A(:, 4)
[m, n] = find(A > 20)    % 找大于20的序号值/矩阵

逻辑与流程控制

if ... else ... end
for ... end
while ... end
switch ... case ... end

循环语句

例、求12 + 22 + 32 + 42 + 52 的和

sum = 0;
for n = 1:5
sum = sum + n^2;
end
sum = 0;
n = 1;
while n <= 10
	sum = sum + n;
	n = n + 1;
end

例、求1到5的阶乘的和

sum = 0;
for i = 1:5
	p = 1;
	for j = 1:i
	p = p * j;
	end
sum = sum + p;
end

分支语句

a = 10;
b = 20;
if a<b
	'成立'
end
a = 10;
b = 20;
if a>b
	'成立'
else 
	'不成立'
end
posted @ 2021-11-25 22:10  墨染启明  阅读(87)  评论(0编辑  收藏  举报