• 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数值数组及其运算的更多相关文章

  1. MATLAB基础学习(3)——数值数组及运算

    rand('state',s)表示随机产生数的状bai态state,一般情百况du下不用指定状态.rand('state',0)作用在于如果指容定zhi状态,产生dao随机结果就相同了.一般情况下不用 ...

  2. MATLAB cell 数组介绍

    转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...

  3. $一步一步学Matlab(4)——使用Matlab进行初等数学运算

    Matlab可以看成是一个功能强大的计算器,那么既然是计算器,进行基本的数学运算绝对是必不可少的.本文主要讲解如何用Matlab做初等数学运算,所谓"初等数学运算",可以理解成是小 ...

  4. MATLAB 单元数组 cell 和结构体 struct 的用法以及区别

    1. 前言 Matlab单元数组cell和结构体struct都可以将不同类型的相关数据集成到一个单一的变量中,使得大量的相关数据的处理变得非常简单而且方便.但是,需要注意的是,单元数组和结构体只是承载 ...

  5. matlab数值类型

    matlab数值类型 数值类型的分类 整数类型    整数类型有8种.上面的数字为其内存大小,如:int8,整数所占内存大小为8个字节.除了int64 和 uint64不能进行数值运算之外都可以. 类 ...

  6. C# 使用SIMD向量类型加速浮点数组求和运算(1):使用Vector4、Vector<T>

    作者: 目录 一.缘由 二.使用向量类型 2.1 基本算法 2.2 使用大小固定的向量(如 Vector4) 2.2.1 介绍 2.2.2 用Vector4编写浮点数组求和函数 2.3 使用大小与硬件 ...

  7. MATLAB中的集合运算

    matlab里关于集合运算和二进制数的运算的函数 intersect:集合交集ismember :是否集合中元素setdiff :集合差集setxor :集合异或(不在交集中的元素)union :两个 ...

  8. 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

    题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数然后输入成对的index和value值 ...

  9. 5_PHP数组_3_数组处理函数及其应用_9_数组集合运算函数

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组集合运算函数 1. array_merge() 函数 程序: <?php $array1 = array ...

随机推荐

  1. ffmpeg编码

    1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. ...

  2. 修复lsp,360浏览器可以上网其它软件不行

    netsh winsock reset netsh int ip reset 重启电脑

  3. Wireshark抓本地回环

    最近正好要分析下本机两个端口之间通信状况.于是用wireshark抓包分析.对于本地回环要进行一些特殊的设置. 1.通过“运行”---“cmd” 输入“route add [本机IP]mask 255 ...

  4. 继承&封装

    扩展一个已有的类,并且继承该类的属性和行为这种方式成为继承. 实例 public class Polygon { public int sides; public double area; publi ...

  5. 使用Storm实现实时大数据分析!

    随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb's上结合了汽车超速监视,为我们演示了使用Storm进 ...

  6. jQuery删除元素

    remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 $("#div1").remove();删除被选元素及其子元素. $("#d ...

  7. logging模块、shutil模块、subprocess模块、xml模块

    logging模块 shutil模块 subprocess模块 xml模块 logging模块 函数式简单配置 import logging logging.debug('debug message' ...

  8. NOIP 膜你题 DAY2

    NOIp膜你题   Day2 duliu 出题人:ZAY     题解 这就是一道组合数问题鸭!!!  可是泥为什么没有推出式子!! 首先我们知道的是 m 盆花都要摆上,然后他们的顺序不定(主人公忘记 ...

  9. keyup.enter.native&click.native.prevent

    vue 监听键盘回车事件 @keyup.enter || @keyup.enter.native vue运行为v-on在监听键盘事件时,添加了特殊的键盘修饰符: <input v-on:keyu ...

  10. anaconda下jieba和wordcloud安装

    1.在anaconda交互环境下安装jieba,输入命令:  pip install jieba 2.在https://pypi.python.org/pypi/wordcloud下载wordclou ...