2.Matlab数值数组及其运算
- 2.1引导
- 2.2一维数组的创建与寻访
- 2.3二维数组的创建
- 2.4二维数组元素的标识
- 2.5二维数组的子数组寻访和赋值
- 2.6执行数组运算的常用函数
- 2.7数组运算和矩阵运算
- 2.8多项式的表达和创建
- 2.9多项式运算函数
- 2.10标准数组生成函数和数组操作函数
- 2.11数组构建技巧综合
- 2.12高维数组的创建
- 2.13关系运算
- 2.14逻辑操作
2.1 引导
2.1.1
function [ output_args ] = Untitled2( input_args ) x=:0.1:
y=x.*exp(-x)
plot(x,y,'-r'),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')
grid
end
运行效果
2.2 一维数组的创建与寻访
2.2.1 一维数组的子数组寻访和赋值
2.2.1.1 子数组的寻访
2.2.2 子数组的赋值
2.3 二维数组的创建
2.3.1 直接输入法
2.3.2 复数数组的另一种输入方式
2.4 二维数组元素的标识
2.4.1 "逻辑1"标识
function [ output_args ] = Untitled2( input_args )
A = zeros(,);%A 两行五列
A(:)=-: %初始化
L=abs(A)>%找出所有绝对值大于3的元素
islogical(L)%判断是否是逻辑数组
X=A(L)%把下标给x
end
2.4.2 逻辑数组与一般双精度数组的关系和区别
function [ output_args ] = Untitled2( input_args )
A = zeros(,);%A 两行五列
A(:)=-: %初始化
L=abs(A)>%找出所有绝对值大于3的元素
islogical(L)%判断是否是逻辑数组
X=A(L)%把下标给x Num=[,,,,;,,,,];
islogical(Num) %Num不是逻辑数组
%Y=A(Num)%只有逻辑数组才可以这样用,所有这样错误
end
2.5 二维数组的子数组寻访和赋值
2.5.1 不同赋值方式示例
function [ output_args ] = Untitled2( input_args )
A=zeros(,)%A初始化为2行4列
A(:)=:%A从1到8赋值(每列从上到下,从左到右) s=[ ]
A(s)%s是A的范围从上到下
Sa=[ ]'%'是用于赋值用
A(s)=Sa A(:,[,])=ones()%第二列第4列都变成1
end
2.6 执行数组运算的常用函数
演示pow2的数组运算性质
function [ output_args ] = Untitled2( input_args )
A=[:;:]
pow2(A)%2的A次方
end
2.7 数组运算和矩阵运算
2.7.1 两种不同转置的比较
function [ output_args ] = Untitled2( input_args )
A(:)=:
A=A*(+i)
A_A=A.'%转置
A_M=A'%转置(不加.后面的复数会变号)
end
2.8 多项式的表达和创建
2.8.1 求3阶方阵A的特征多项式
function [ output_args ] = Untitled2( input_args )
A=[ ; ; ];
PA = poly(A)%求特征多项式
PPA=poly2str(PA,'s')%把特征多项式转化为表达式
end
2.8.2 由给定向量求多项式系数向量
function [ output_args ] = Untitled2( input_args )
R=[-0.5,-0.3+0.4*i,-0.3-0.4*i]
P=poly(R)%求特征向量
PR=real(P)%求对应的系数向量
PPR=poly2str(PR,'x')%转化为表达式
end
2.9 多项式运算函数
2.9.1
function [ output_args ] = Untitled2( input_args )
2 %分子第一项多项式系数分别为1*s^2+0*s+2 1*s+4 1*s+1
p1=conv([,,],conv([,],[,]));
4 %分子的多项式系数 为 1*s^3 + 0*s^2 + 1*s + 1
p2=[ ];
6 %q,r 分别是商和余多项式
[q,r]=deconv(p1,p2); cq='商多项式为 ';cr='余多项式为 '
10 %转化为表达式
disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])
end
2.9.2 polyval 与 polyvalm的区别
function [ output_args ] = Untitled2( input_args )
a=[ ]; %多项式为x^2+2*x+3
A=[ ; ]; %定义一个二维矩阵
polyvalm(a,A)%求结果
5 %其实相当于把A这个二维矩阵直接替换变量x,即求 A^2+2*A+3*E 这个矩阵多项式。
polyval(a,A)%矩阵的每一个数都带入a运算形成一个新的矩阵
end
2.10 标准数组生成函数和数组操作函数
2.10.1 标准数组的产生
function [A,B] = test( mark,num,array )%输入参数中,mark、num是标量,array是向量 ones(,) ones() randn('state',)
randn(,) D=eye() diag(diag(D)) repmat(D,,)
end
2.10.2 数组操作函数
diag与reshape的使用
function [A,B] = test( mark,num,array )%输入参数中,mark、num是标量,array是向量 a=-: A=reshape(a,,)%创建一个矩阵 a1=diag(A,-)%\方向获取 A1=diag(a1,-)%\方向创建矩阵
end
数组转置.对称和旋转操作
演示Kronecker乘法不具备"可交换规律"
B=eye()
C=reshape(:,,) kron(B,C)
kron(C,B)
2.11 数组构建技巧综合
2.11.1 数组的赋值扩展法
2.11.2 多次寻访扩展法
2.11.3 合成扩展法
2.11.4 提取子数组,合成新数组
function [A,B] = test( mark,num,array )%输入参数中,mark、num是标量,array是向量
A = reshape(:,,)%分配一个3*3的数组
A(,)=%第五行第五列设为111
A(:,)=%第六列全设置为222 AA=A( : ,[:,:])%拓展 B=ones(,)%创建数组,2行6列
AB_r=[A;B]%B作为A的后两行
AB_c=[A,B(:,:)']%B的1-5列的转置 作为A的后两列 AB_BA=triu(A,)+tril(A,-)%对角线取反相加 %AB1=[A(:,:);B(,:)]%A数组的第一行第二行, B取第一行
AB1=[A(:,end:-:);B(,:)]%A数组的第一行第二行,从后到前颠倒 B取第一行 end
2.11.5 单下标寻访和reshape指令演示
2.11.6 对列(或行)同加一个数 三种方法
clear
A=reshape(:,,)
b=[ ]
A_b1=A-b([ ],:)%每一行按顺序减
A_b2=A-repmat(b,,)%b按顺序减1
A_b3=[A(:,)-b(),A(:,)-b(),A(:,)-b()]%每一列减1
2.11.7 逻辑函数的运用
2.12 高维数组的创建
function [ output_args ] = Untitled( input_args )
%UNTITLED 此处显示有关此函数的摘要
% 此处显示详细说明
A(,,)=%第二行第二列第二层 B(,,:)=:%第二行,第五列,所有层 clear
A=ones(,)
A(:,:,)=ones(,)*%加了一层
A(:,:,)=ones(,)*%加一层 end
2.12.1 由函数ones zeros rand randm直接创建标准高维数组
rand('state',),rand(,,)
2.12.2 借助 cat, repmat, reshape 等函数构作高维数组
cat(,ones(,),ones(,)*,ones(,)*)
reshape(:,,,)
2.12.3 高维数组的维数,大小和长度
A=reshape(:,,,);
dim_A=ndims(A)
size_A=size(A)
L_A=length(A)
dim_A = size_A = L_A =
2.12.4 数组元素对称交换指令flipdim的使用示例
2.13 关系运算
2.13.1 关系运算示例
2.13.2 关系操作求近似极限
function [ output_args ] = Untitled( input_args )
t=-*pi:pi/:*pi y=sin(t)./t tt=t+(t==)*eps
yy=sin(tt)./tt subplot(,,)
plot(t,y)
axis([-,,-0.5,1.2])%横坐标从[-7,7] 纵坐标从[-0.5,1.2]
xlabel('t'),ylabel('y'),title('残缺图形') subplot(,,),plot(tt,yy),axis([-,,-0.5,1.2]),
xlabel('t'),ylabel('yy'),title('正确图形')
end
运行效果:
2.14 逻辑操作
A=-:
L1=~(A>)%进行判断再取反
L2=~A>%进行判断再取反
L3=~A%所有都取反,非零就是1
L4=A>-&A<%判断是否在区间(-,)
2.14.1 削顶整流正弦半波的计算和图形绘制
function [ output_args ] = Untitled( input_args )
t=linspace(,*pi,)
y=sin(t) %处理方法一:
z1=((t<pi)|(t>*pi)).*y w=(t>pi/&t<*pi/)+(t>*pi/&t<*pi/);
w_n=~w;
z2=w*sin(pi/)+w_n.*z1; subplot(,,),plot(t,y,':r'),ylabel('y')
subplot(,,),plot(t,z1,'r'),axis([ - ])
subplot(,,),plot(t,z2,'-b'),axis([ - ])
end
运行效果
function [ output_args ] = Untitled( input_args )
t=linspace(,*pi,)
y=sin(t) %处理方法二
z=(y>=).*y;
a=sin(pi/);
z=(y>=a)*a +(y<a).*z; plot(t,y,':r')
hold on
plot(t,z,'-b')
xlabel('t'),ylabel('z=f(t)'),title('逐段解析函数')
legend('y=sin(t)','z=f(t)'),hold off
end
运行效果
2.Matlab数值数组及其运算的更多相关文章
- MATLAB基础学习(3)——数值数组及运算
rand('state',s)表示随机产生数的状bai态state,一般情百况du下不用指定状态.rand('state',0)作用在于如果指容定zhi状态,产生dao随机结果就相同了.一般情况下不用 ...
- MATLAB cell 数组介绍
转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...
- $一步一步学Matlab(4)——使用Matlab进行初等数学运算
Matlab可以看成是一个功能强大的计算器,那么既然是计算器,进行基本的数学运算绝对是必不可少的.本文主要讲解如何用Matlab做初等数学运算,所谓"初等数学运算",可以理解成是小 ...
- MATLAB 单元数组 cell 和结构体 struct 的用法以及区别
1. 前言 Matlab单元数组cell和结构体struct都可以将不同类型的相关数据集成到一个单一的变量中,使得大量的相关数据的处理变得非常简单而且方便.但是,需要注意的是,单元数组和结构体只是承载 ...
- matlab数值类型
matlab数值类型 数值类型的分类 整数类型 整数类型有8种.上面的数字为其内存大小,如:int8,整数所占内存大小为8个字节.除了int64 和 uint64不能进行数值运算之外都可以. 类 ...
- C# 使用SIMD向量类型加速浮点数组求和运算(1):使用Vector4、Vector<T>
作者: 目录 一.缘由 二.使用向量类型 2.1 基本算法 2.2 使用大小固定的向量(如 Vector4) 2.2.1 介绍 2.2.2 用Vector4编写浮点数组求和函数 2.3 使用大小与硬件 ...
- MATLAB中的集合运算
matlab里关于集合运算和二进制数的运算的函数 intersect:集合交集ismember :是否集合中元素setdiff :集合差集setxor :集合异或(不在交集中的元素)union :两个 ...
- 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数然后输入成对的index和value值 ...
- 5_PHP数组_3_数组处理函数及其应用_9_数组集合运算函数
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组集合运算函数 1. array_merge() 函数 程序: <?php $array1 = array ...
随机推荐
- nfs server and client
系统环境:Centos7.3 ip1:10.0.0.1 ip2:10.0.0.2 检测是否安装NFS服务 rpm -qa | grep nfs rpm -qa|grep nfs 安装NFS ...
- CSS3实现简单的幻灯片
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python课程设计笔记(四)整数、浮点数与字符串 time库
整数类型(范围无限制) 十进制1 -1 二进制0b1 -0b1 八进制0o1 -0o1 十六进制0x1 -0x1 浮点类型(范围有限制但可忽略) 运算存在不确定尾数 :0.1+0.2!=0.3 原因: ...
- myslide探索
最近查一些国内学术牛人的报告时,注意到myslide是个很好的平台,比如山大一个老师的报告,完全可以在上面看到 https://myslide.cn/slides/10774 又比如交大一个大牛老师关 ...
- 统计学——Excel实现单(双)因素方差分析
笔记链接:http://www.cnblogs.com/igoslly/p/6784206.html 加载Excel“数据分析”工具包 [文件]→[选项]→[加载项]→[Excel加载项]→[转到] ...
- Virtualbox guest in KDE Neon
在最新版的KDE Neon里面装VirtualBox客户端工具,折腾了好久,时间紧的时候不得已用共享U盘的方法将就. 之前要么装完关机按钮点了没反应,要么重启进桌面后任务栏消失,再就是进去之后复制东西 ...
- 【前端】CSS隐藏元素的方法和区别
CSS隐藏元素的方法和区别 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- Python笔记9-----不等长列表转化成DataFrame
1.不同长度的列表合并成DataFrame. 法1: ntest=['a','b'] ltest=[[1,2],[4,5,6]] 先变成等长的列表:(a:1),(a:2),(b:4),(b:5),(b ...
- BZOJ 2333 [SCOI2011]棘手的操作 (可并堆)
码农题.. 很显然除了两个全局操作都能用可并堆完成 全局最大值用个multiset记录,每次合并时搞一搞就行了 注意使用multiset删除元素时 如果直接delete一个值,会把和这个值相同的所有元 ...
- 新人--使用layui做的表格,复杂表头,固定列,操作单元格数据计算,点击查询重载表格,可以选择部分或者全部导出
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...