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 ...
随机推荐
- ffmpeg编码
1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. ...
- 修复lsp,360浏览器可以上网其它软件不行
netsh winsock reset netsh int ip reset 重启电脑
- Wireshark抓本地回环
最近正好要分析下本机两个端口之间通信状况.于是用wireshark抓包分析.对于本地回环要进行一些特殊的设置. 1.通过“运行”---“cmd” 输入“route add [本机IP]mask 255 ...
- 继承&封装
扩展一个已有的类,并且继承该类的属性和行为这种方式成为继承. 实例 public class Polygon { public int sides; public double area; publi ...
- 使用Storm实现实时大数据分析!
随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb's上结合了汽车超速监视,为我们演示了使用Storm进 ...
- jQuery删除元素
remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 $("#div1").remove();删除被选元素及其子元素. $("#d ...
- logging模块、shutil模块、subprocess模块、xml模块
logging模块 shutil模块 subprocess模块 xml模块 logging模块 函数式简单配置 import logging logging.debug('debug message' ...
- NOIP 膜你题 DAY2
NOIp膜你题 Day2 duliu 出题人:ZAY 题解 这就是一道组合数问题鸭!!! 可是泥为什么没有推出式子!! 首先我们知道的是 m 盆花都要摆上,然后他们的顺序不定(主人公忘记 ...
- keyup.enter.native&click.native.prevent
vue 监听键盘回车事件 @keyup.enter || @keyup.enter.native vue运行为v-on在监听键盘事件时,添加了特殊的键盘修饰符: <input v-on:keyu ...
- anaconda下jieba和wordcloud安装
1.在anaconda交互环境下安装jieba,输入命令: pip install jieba 2.在https://pypi.python.org/pypi/wordcloud下载wordclou ...