精华内容
下载资源
问答
  • MATLABsingle函数

    2021-04-20 02:53:18
    MATLABsingle函数:一般来说,大矩阵计算,如果用single类型的数据能节省一半的内存空间,double数据类型占8个字节,single类型占4个字节,matlab在内部执行的时候是默认转换成double类型进行运算,据说可以从菜单...

    MATLAB之single函数:

    一般来说,大矩阵计算,如果用single类型的数据能节省一半的内存空间,double数据类型占8个字节,single类型占4个字节,matlab在内部执行的时候是默认转换成double类型进行运算,据说可以从菜单里面改设置变成默认single 未尝试过,matlab里面有个命令可以转换数据格式,那就是:

    single函数

    可以执行以下语句看一下b是什么:

    b=1;

    whos b

    b=single(b);

    whos b

    你可以看到b从默认的double变成了single

    也可以尝试如下命令来测试运算读速度:

    a=rand(1,100);

    b=rand(1,100);

    c=rand(1,100);

    a1=single(a);

    b1=single(b);

    tic

    for i=1:100

    c=a.*b;

    end

    toc

    tic

    for i=1:100

    c=a1.*b1;

    end

    toc

    结果:

    Elapsed time is 0.081662 seconds.

    Elapsed time is 0.002880 seconds.

    说明single的运算速度的确是快很多,用时约为原来的1/5

    此外 simulink里面有强制数据类型转换 也许可以提高simulink的速度(未测试)

    Tips

    1.    Matlab中如果我们使用循环的话,如果循环体内的程序不含有single等类型,而且使用的函数都是matlab的build-in function的话,matlab会自动帮助你优化for循环。

    2.    使用ctrl + i 可以对选中的代码区域自动排版。

    展开全文
  • matlab——zeros函数

    万次阅读 多人点赞 2019-10-19 11:40:29
    #matlab——zeros函数 ##功能 zeros函数用于创建一个全零的数组或矩阵 ##语法 B = zeros(n) B = zeros(m,n) B = zeros(m,n) B = zeros(d1,d2,d3…) B = zeros([d1 d2 d3…]) B = zeros(size(A)) zeros(m, n,…,...

    matlab——zeros函数
    功能
    zeros函数用于创建一个全零的数组或矩阵
    语法
    B = zeros(n)
    B = zeros(m,n)
    B = zeros(m,n)
    B = zeros(d1,d2,d3…)
    B = zeros([d1 d2 d3…])
    B = zeros(size(A))
    zeros(m, n,…,classname)
    zeros([m,n,…],classname)
    解释
    zeros(n): 生成一个nn的零矩阵,如果n不是标量,则会报错
    zeros(m,n)和zeros(m,n):均是一个m
    n的矩阵
    zeros(d1,d2,d3…)和zeros([d1 d2 d3…]):均是生成一个d1d2d3*……的零数组或矩阵
    zeros(size(A)) :生成一个和矩阵A大小相同的零矩阵
    zeros(m, n,…,classname)和zeros([m,n,…],classname):生成一个类型为classname的m*n大小的零数组或矩阵,其中classname的取值有:double’, ‘single’, ‘int8’, ‘uint8’, ‘int16’, ‘uint16’, ‘int32’, or ‘uint32’
    备注
    MATLAB语言没有一个维度声明; MATLAB自动为矩阵分配存储空间。然而,对于大型矩阵,MATLAB程序可能会执行得更快,如果零函数用于设置一个矩阵,其元素将产生一次,或行或列的时间预留存储空间。例如

    x = zeros(1,n);
    for i = 1:n, x(i) = i; end

    展开全文
  • Matlab中rand函数的使用方法

    千次阅读 2019-11-24 23:22:00
    原创 MATLAB中rand,randi,randn函数,及rand('state',0)和rand('seed',0)产生随机种子详解              在学习matlab中看到书上有许多关于生成随机数...

    MATLAB中rand,randi,randn函数,及rand('state',0)和rand('seed',0)产生随机种子详解

                 在学习matlab中看到书上有许多关于生成随机数的应用,y书上一开始会写一个rand('state',0),注释是为了方便验证,一开始并不是很理解,最近搜索网上文章等深入理解了下关于MATLAB中生成随机数函数的相关应用。

    二、问题探究

    1:rand(....)

            它是生成(0,1)之间(开环,不包含0和1两个数)均匀分布的伪随机数,也就是无穷次试验其中产生的概率是一样。

    R = rand                                     %返回一个在区间(0,1)内均匀分布的随机数

    R = rand(N)                                %生成NxN的矩阵随机数,其中每个元素位于0~1之间

    R = rand(M,N,P,......)                  %生成一个MxNxPx........的矩阵随机数

    R = rand([M,N,P.....])                  %同上,中括号不是必须的,例如:rand([3,4])返回一个3x4的矩阵

    R = rand(......,CLASSNAME)   %生成CLASSNAME类型的随机数,如‘double’  or  ‘single’类型

     示例:

    (1):由随机数组成的矩阵

    
     
    1. >>R = rand( 5) %生成一个由介于 01 之间的均匀分布的随机数组成的 5× 5 矩阵。
    2. R =
    3. 0. 8147 0.0975 0. 1576 0. 1419 0. 6557
    4. 0. 9058 0. 2785 0. 9706 0. 4218 0. 0357
    5. 0. 1270 0. 5469 0. 9572 0. 9157 0. 8491
    6. 0. 9134 0. 9575 0. 4854 0. 7922 0. 9340
    7. 0. 6324 0. 9649 0. 8003 0. 9595 0. 6787
    8. >> R = rand( 5, 3, 'double') %生成double类型的 5x3均匀分布的 01间随机数
    9. R =
    10. 0. 7577 0. 7060 0. 8235
    11. 0. 7431 0. 0318 0. 6948
    12. 0. 3922 0. 2769 0. 3171
    13. 0. 6555 0. 0462 0. 9502
    14. 0. 1712 0.0971 0. 0344

    (2):指定区域内的随机数

         一般来说,可以使用公式 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。

    
     
    1. >> r = - 5 + ( 5+ 5)*rand( 10, 1) %生成一个由区间 (- 5, 5) 内均匀分布的数字组成的 10× 1 列向量。
    2. r =
    3. - 0. 6126
    4. - 1.1844
    5. 2.6552
    6. 2.9520
    7. - 3.1313
    8. - 0. 1024
    9. - 0. 5441
    10. 1.4631
    11. 2.0936
    12. 2.5469

    (3):随机复数

    
     
    1. >> a = rand + 1i*rand %生成一个实部和虚部位于区间 ( 0, 1) 内的随机复数。
    2. a =
    3. 0.7513 + 0.2551i

    2:randi(......)

     randi(N) 是生成(0,N]间均匀分布的伪随机数,并且数都是整数,所以每个数是位于1到N之间。它的表达形式有以下几种:

    R = randi(iMax)            % 生成1:iMax之间的均匀分布随机数
    R = randi(iMax,m,n)        % 生成m×n的1:iMax之间的均匀分布随机数
    R = randi([iMin,iMax],m,n) % 生成m×n的iMin:iMax之间的均匀分布随机数

    例如:

    R1 = randi(10,5,1);      % 生成5×1的1:10之间随机整数
    R2 = randi([10,20],2,3); % 生成2×3的10:20之间随机整数

    3:randn(...)

    有时候我们希望生成的随机数是呈现正态分布的,而不是随机分布,这时候我们就需要使用randn函数了。它生成的随机数整体概率为正态分布,均值为0,方差为1。也就是说生成的数中出现0的概率最大,而越往无穷或者负无穷概率越小,但是出现的随机数可能为所有实数,只不过出现的概率不同。它的格式如下:

    R = randn(N)   % 生成N×N个正态分布的随机数
    R = randn(M,N) % 生成M×N个正态分布的随机数
    例如:

    R = randi(3);      % 生成3×3的正态分布的随机数

    4:关于rand(‘state’,sum(clock))于rng用法的探究

    首先需要知道Matlab中的rand()函数产生的是伪随机数。如果我们知道伪随机数的初始状态,那么产生的伪随机数是唯一确定的。问题来了,Matlab每次启动会重置rand()和randn()的初始状态(重置为0),也就是说,你产生的随机数会出现两次随机数一模一样的情况,如:

    
     
    1. >> rand( 'state', 0)
    2. >> rand( 3, 1)
    3. ans =
    4. 0. 9501
    5. 0. 2311
    6. 0. 6068
    7. >> rand( 'state', 1)
    8. >> rand( 3, 1)
    9. ans =
    10. 0. 9528
    11. 0. 7041
    12. 0. 9539
    13. >> rand( 'state', 0) %随机数结果复现了
    14. >> rand( 3, 1)
    15. ans =
    16. 0. 9501
    17. 0. 2311
    18. 0. 6068

    个人理解这样做是为了使得随机产生的结果重新复现方便多次展示,但是在matlab官网上面说最好不要用这种方法应为在2012以后的版本提供了更好的函数rng,如下图:(强烈建议有什么问题还是去官网查手册详细,有各种例子,而且是官方解释:https://ww2.mathworks.cn/help/matlab/ref/rand.html?searchHighlight=rand&s_tid=doc_srchtitle

    RandStream - 随机数流

        MATLAB 中的伪随机数来自一个或多个随机数流。生成随机数数组的最简单方法是使用 rand、randn 或
        randi。这些函数全部都依赖于同一均匀随机数流,称为全局流。您可以创建与全局流分开使用的其他流,使用它们的 rand、randi 或          randn方法生成随机数数组。您也可以创建随机数流并将其用作全局流。

     

    4、稳定的重启分布rng 
      这里我们来看一下如何让每次程序运行生成的随机数都一样,主要借助的是rang函数,格式如下:

    rng('default');
    R = rand(1,5); % 每次程序运行生成恒定的1×5随机数


    此外还有生成同样分布的表达方式:

    s = rng;
    R1 = rand(1,5);
    rng(s);
    R2 = rand(1,5); % R1和R2随机数一样

     

     

    参考文章:

    1:https://blog.csdn.net/linhd1102/article/details/51193812

    2:https://ww2.mathworks.cn/help/matlab/ref/randi.html?searchHighlight=randi&s_tid=doc_srchtitle

    3:https://blog.csdn.net/FX677588/article/details/72811673

    展开全文
  • bode(sys1,sys2,...,sysN) or bode(sys1,sys2,...,sysN,w) plots the Bode responses of several LTI models on a single figure. All systems must have the same number of inputs and outputs, but they can ...

    分析频率响应特性适用。

    bode

    Bode diagram of frequency response

    Syntax

    bode

    bode(sys)

    bode(sys,w)

    bode(sys1,sys2,...,sysN)

    bode(sys1,sys2,...,sysN,w)

    bode(sys1,'PlotStyle1',...,sysN,'PlotStyleN')

    Description

    bode computes the magnitude and phase of the frequency response of LTI models. When you

    invoke this function without left-side arguments, bode produces a Bode plot on the screen. The

    magnitude is plotted in decibels (dB), and the phase in degrees. The decibel calculation for mag is

    computed as 20log10 (|H(jω)|), where |H(jω)| is the system's frequency response. You can use

    bode plots to analyze system properties such as the gain margin, phase margin, DC gain,

    bandwidth, disturbance rejection, and stability.

    bode(sys) plots the Bode response of an arbitrary LTI model sys. This model can be continuous

    or discrete, and SISO or MIMO. In the MIMO case, bode produces an array of Bode plots, each

    plot showing the Bode response of one particular I/O channel. The frequency range is determined

    automatically based on the system poles and zeros.

    bode(sys,w) explicitly specifies the frequency range or frequency points for the plot. To focus on

    a particular frequency interval [wmin,wmax], set w = {wmin,wmax}. To use particular frequency

    points, set w to the vector of desired frequencies. Use logspace to generate logarithmically

    spaced frequency vectors. Specify all frequencies in radians per second (rad/s).

    bode(sys1,sys2,...,sysN) or bode(sys1,sys2,...,sysN,w) plots the Bode responses

    of several LTI models on a single figure. All systems must have the same number of inputs and

    outputs, but they can include both continuous and discrete systems. Use this syntax to compare

    the Bode responses of multiple systems.

    bode(sys1,'PlotStyle1',...,sysN,'PlotStyleN') specifies the color, linestyle, and/or

    marker for each system's plot. For example:

    bode(sys1,'r--',sys2,'gx')

    produces a red dashed lines for the first system sys1 and green 'x' markers for the second

    system sys2.

    When you invoke this function with left-side arguments, the commands

    [mag,phase,w] = bode(sys)

    [mag,phase] = bode(sys,w)

    return the magnitude and phase (in degrees) of the frequency response at the frequencies w (in

    rad/s). The outputs mag and phase are 3-D arrays with the frequency as the last dimension (see

    "Arguments" for details). To convert the magnitude to decibels, type

    展开全文
  • Matlab中的组合函数

    2021-04-24 16:41:51
    uint32, int32, uint64, int64 logical, char 搬自help文件 这个函数可以有很多用法,最做的东西涉及到把列数里面某个差值内的一段数选出来,就可以用nchoosek这个函数函数名称也很有意思,n个数里面choose k个数...
  • Matlab中求和函数sum的使用示例

    千次阅读 2021-04-20 05:08:19
    Matlab中求和函数sum的使用示例发布时间:2020-12-23 14:23:12来源:亿速云阅读:56作者:小新这篇文章主要介绍Matlab中求和函数sum的使用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看...
  • Matlab中angle函数使用

    千次阅读 2020-11-27 15:40:38
    目录 一.语法 二.说明 三.示例 1.复数的幅值和相位 ...angle函数是求解相位角。...一....数据类型:double|single复数支持:是 ...二....theta = angle(z)为复数数组z的每个元素返回区间 [-π,π] 的...
  • 1、blkdiag函数:生成指定对角线元素的矩阵2、用法说明A =blkdiag(a,b,c,d,...) 函数产生以a,b,c,d,...为对角线元素的矩阵A3、举例说明>> x = blkdiag(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)x =1 0 0 0...
  • Matlab中fread函数用法

    千次阅读 2020-12-22 09:44:27
    fread函数读取二进制文件的数据。 语法 A = fread(fileID) A = fread(fileID,sizeA) A = fread(fileID,sizeA,precision) A = fread(fileID,sizeA,precision,skip) A = fread(fileID,sizeA,precision,skip,...
  • 参考资料:你可能觉得imread函数很简单,但是还是有一些细节要注意。比如我就对imwrite函数输出的图片格式有一些疑问,下面对imwrite函数的用法进行解释,先放一下官方文档:imwrite(A,filename)writes image ...
  • 数据类型:single | double | int16 | uint8 | uint16 PSF:点扩展函数(数值数组) PSF,指定为数字数组。您还可以将psf指定为单元数组以启用中断的迭代。 数据类型:single | double | int16 | uint8 | uint16 ...
  • matlab中any 函数的作用

    2021-04-21 09:43:50
    就是B = any(A),如果A是向量,如果向量里有非0的数,则返回1(true),如果A是矩阵,则把矩阵的列当做向量来处理,函数返回每个列向量的逻辑值; B = any(A,dim)测试由dim表示的A的维度,返回相应逻辑值 Examples ...
  • matlab中log函数

    千次阅读 2020-07-10 15:44:06
    Y = log(X) 返回数组 X 每个元素的自然对数 ln(x)。 log 函数的域包含负数和复数,如果使用不当,可能会导致意外结果。对于负数和复数 z = u + i*w,复数对数 log(z) 返回 log(abs(z)) + 1i*angle(z) 如果想要负数...
  • MATLAB中randi函数的用法

    千次阅读 2021-02-06 21:28:55
    MATLAB中randi函数的用法 均匀分布的伪随机整数 语法 X = randi(imax) X = randi(imax,n) X = randi(imax,sz1,...,szN) X = randi(imax,sz) X = randi(imax,classname) X = randi(imax,n,classname) X = randi(imax,...
  • 注意问题:1,对于单位阶跃函数u(t-b)和Dirac函数delta(t-a),可以借用Maple函数的定义,他们分别是Heaviside(t-b),Dirca(t-a).2,点乘和点除代表矩阵对应元素相乘除。比如A=[1 2; 3 4];B=A;A.*B=[1*1 2*2;3*3 4*...
  • MATLAB中bode函数的使用及实例ode :: Functions (Control System Toolbox™) jar:file:///C:/Program%20Files/MATLAB/R2010a/help/toolbox/control/...bodeBode diagram of frequency responseSyntaxbodebo...
  • MATLAB中fscanf函数用法的具体例子

    万次阅读 2019-04-01 11:48:16
    MATLAB中fscanf函数用法 fscanf用于读取数据文件(.txt)的数据,从保存的.txt文件的第一个数据开始往下读,如果读取的数据不能将格式与数据匹配,它只读取数据的部分,然后停止处理。注意,输出结果是列优先。 ...
  • Matlab中textscan函数用法

    千次阅读 2020-12-24 17:32:38
    textscan函数从文本文件或字符串读取格式化数据。 语法 C = textscan(fileID,formatSpec) C = textscan(fileID,formatSpec,N) C = textscan(chr,formatSpec) C = textscan(chr,formatSpec,N) C = textscan(__...
  • Matlab中freqz函数使用

    千次阅读 2020-11-27 15:14:51
    1.传递函数的频率响应 2.二阶部分的频率响应 3.FIR滤波器的频率响应 4.FIR带通滤波器的频率响应 freqz函数是求解数字滤波器的频率响应。 一.语法 [h,w] = freqz(b,a,n) [h,w] = freqz(sos,n) [h,w] = ...
  • matlab中rand函数使用

    2020-12-22 17:13:21
    rand(1,4,'single') ans = 1×4 single 行矢量 0.2769 0.0462 0.0971 0.8235 >> a=-5+(5+5)*rand(10,1) %产生(-5,5)之间的随机数 a = -3.1313 -0.1024 -0.5441 1.4631 2.0936 2.5469 -2.2397 1.7970 1.5510 -3....
  • MATLAB中scatter函数的用法(绘制散点图)

    万次阅读 多人点赞 2018-05-06 10:23:48
    转载自https://ww2.mathworks.cn/help/matlab/ref/scatter.html#btrli6p-1scatter散点图语法scatter(x,y)scatter(x,y,sz)scatter(x,y,sz,c)scatter(___,'filled')scatter(___,mkr)scatter(___,Name,Value)scatter(ax...
  • Linkage:Agglomerative hierarchical cluster tree(凝聚成层次聚类树)语法: 解释:Z=...输入的X为pdist函数输出的距离向量矩阵(pdist函数参考上篇文章)Z=linkage(x,method),使用指定的method创建树Z=linkage(x,m...
  • matlab中找不到step函数

    2021-04-18 13:27:32
    如下所示,可以 看到函数step的用法。 >> help step STEP Step response of dynamic systems. STEP(SYS) plots the step response of the dynamic system SYS. For multi-input models, independent ste...
  • matlab中常用函数系列一之is^^^系列

    千次阅读 2020-02-26 11:10:05
    4 5 6] isempty(A) B=[1] isempty(B) C=[] isempty(C) ~isempty(C) 输出结果: 2、isinf() isinf(A) 返回维数与A相同的数组 A元素为正无穷、负无穷时,返回1,否则返回0 示例代码: 3、isfield() 函数功能:判断...
  • For several equations and a single output, a structure containing the solutions is returned. solve(...,'IgnoreAnalyticConstraints',VAL) controls the level of mathematical rigor to use on the ...
  • 转自:http://msemac.redwoods.edu/~darnold/math50c/matlab/contours/index.xhtmlContour Maps in MatlabIn this activity we will introduceMatlab'scontourcommand,which is used to plot the level curves of a ...
  • Matlab中常用的显示格式有:(1)format short表示5位近似定点数(2)format long 15位近似定点数(3)format hex 十六进制表示(4)format bank 银行格式,固定元和分(5)format rat 最小证书比例(分数)表示3、用法举例>...
  • 转自:http://msemac.redwoods.edu/~darnold/math50c/matlab/contours/index.xhtmlContour Maps in MatlabIn this activity we will introduceMatlab'scontourcommand,which is used to plot the level curves of a ...
  • matlab中的sparse函数使用

    千次阅读 2020-11-01 17:10:53
    size(S) ans = 1×2 1500 1500 预分配稀疏矩阵的存储空间 尝试此示例 View MATLAB Command N = nnz(S) N = 10 N_alloc = nzmax(S) N_alloc = 100 spalloc 函数可以快速创建由全零元素构成的稀疏矩阵,同时还会在...
  • Matlab图像处理函数大全(建议收藏)

    千次阅读 多人点赞 2020-12-11 20:32:01
    文章目录第1章: 图像显示与图像文件输入输出函数第2章: 图形绘制第3章: 图像类型和类型转换第4章: 图形用户界面工具第5章: 空间变换和图像配准第6章: 图像分析和统计第7章: 图像代数运算第8章: 图像增强第9...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,081
精华内容 2,832
关键字:

matlab中single函数

matlab 订阅