精华内容
下载资源
问答
  • Matlab中的条件数

    千次阅读 2013-10-20 16:43:03
    1、矩阵的条件数是判断矩阵“病态”程度的一个指标。  若矩阵的条件数越大,则表明矩阵的病态越严重;反而就是呈现出良态 2、矩阵的条件数函数 (1)cond函数 求矩阵二范式条件数 (2)condest函数 求矩阵一...

    1、矩阵的条件数是判断矩阵“病态”程度的一个指标。

          若矩阵的条件数越大,则表明矩阵的病态越严重;反而就是呈现出良态

    2、矩阵的条件数函数

    (1)cond函数                求矩阵二范式条件数

    (2)condest函数           求矩阵一范式条件数

    (3)rcond函数              求矩阵条件数的倒数

    3、实例

    >> m = magic(3)
    
    m =
    
         8     1     6
         3     5     7
         4     9     2
    
    >> h = hilb(4)
    
    h =
    
        1.0000    0.5000    0.3333    0.2500
        0.5000    0.3333    0.2500    0.2000
        0.3333    0.2500    0.2000    0.1667
        0.2500    0.2000    0.1667    0.1429
    
    >> a = cond(m)
    
    a =
    
        4.3301
    
    >> b = condest(m)
    
    b =
    
        5.3333
    
    >> c = rcond(m)
    
    c =
    
        0.1875
    
    >> d = cond(h)
    
    d =
    
       1.5514e+04
    
    >> e = condest(h)
    
    e =
    
       2.8375e+04
    
    >> f = rcond(h)
    
    f =
    
       3.5242e-05



    展开全文
  • Matlab与线性代数 -- 矩阵的条件数

    千次阅读 2016-12-27 16:24:46
    本图文介绍了矩阵的条件数,以及Matlab中的求取方法。

    本图文介绍了矩阵的条件数,以及Matlab中的求取方法。

    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • matlab cond函数 矩阵的条件数

    万次阅读 2017-03-14 10:54:07
    MATLAB中,计算矩阵A的3种条件数的函数是: (1) cond(A,1) 计算A的1—范数下的条件数。 (2) cond(A)或cond(A,2) 计算A的2—范数数下的条件数。 (3) cond(A,inf) 计算A的 ∞—范数下的条件数。 (关于范数知识请...

    Cond(A)称作矩阵A的条件数,为矩阵A的范数与A的逆矩阵的范数的乘积

    定义 
    在MATLAB中,计算矩阵A的3种条件数的函数是:
    (1) cond(A,1) 计算A的1—范数下的条件数。
    (2) cond(A)或cond(A,2) 计算A的2—范数数下的条件数。
    (3) cond(A,inf) 计算A的 ∞—范数下的条件数。

    (关于范数知识请看我博客中关于norm函数的相关介绍)

    举例

    输入矩阵:A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];
    命令:cond(A,1) 结果:ans = 92.1325
    命令:cond(A,2) 结果:ans =48.3117
    命令:cond(A,inf) 结果:ans =68.6582


    在matlab中,判断矩阵的奇异性一般用函数cond,求矩阵的条件数,即矩阵最大奇异值与最小奇异值的比值。当矩阵的条件数很大时,说明矩阵趋近于奇异

    矩阵的条件数

    条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组Ax=b,如果A的条件数大,b的微小改变就能引起解x较大的改变,数值稳定性差。如果A的条件数小,b有微小的改变,x的改变也很微小,数值稳定性好。它也可以表示b不变,而A有微小改变时,x的变化情况。

    比如线性方程组
    matlab <wbr>cond函数 <wbr>矩阵的条件数

    的解是(x,y)=(2,1),
    matlab <wbr>cond函数 <wbr>矩阵的条件数

    的解是(x,y)=(-3.999,4.000)

    可见b很小的扰动就引起了x很大的变化,这就是A矩阵条件数大的表现。

    一个极端的例子,当A奇异时,条件数为无穷,这时即使不改变b,x也可以改变。奇异的本质原因在于矩阵有0特征值,x在对应特征向量的方向上运动不改变Ax的值。如果一个特征值比其它特征值在数量级上小很多,x在对应特征向量方向上很大的移动才能产生b微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正规阵在二范数下的条件数就可以表示成 abs(最大特征值/最小特征值)。
    展开全文
  • 对于一个方程组的求解问题,通常会考虑到条件数条件数太大,计算机求解会出现极大的误差,影响到后续工作的进行,需要对条件数进行预估。
  • 条件中位算法用于无失效数据的可靠性估算,本程序是主函数,将数据带入即可计算
  • 它还计算 A^p 在任何方向 E 上的 Frechet 导数,并估计用于计算矩阵幂的条件数。 本次提交包含两个函数:powerm_pade_fre.m 使用复数运算; powerm_pade_fre_real.m 使用实数算术,适用于 A 和 E 均为实数的情况。...
  • A = RANDCONDMAT(n, cond, options) 生成条件数等于cond的随机nxn矩阵。 A = RANDCONDMAT(...,'对称') 生成对称A。 A = RANDCONDMAT(...,'positive') 生成正定(对称或不对称)A。 A = RANDCONDMAT(...,'norm', nrm)...
  • MATLAB教程(1) MATLAB 基础知识

    万次阅读 多人点赞 2017-10-26 20:57:32
    去年看过一点点MATLAB,很久不用,遗忘惊人。为了加深自己的印象,扎实基础,现将官网上的基础教程做简单的翻译。 首先,以下从九个部分简单介绍基础入门知识。第一部分:MATLAB显示桌面的基本布局...

    初学。去年看过一点点MATLAB,很久不用,遗忘惊人。为了加深自己的印象,扎实基础,现将官网上的基础教程做简单的翻译。

    首先,以下从九个部分简单介绍基础入门知识。

    第一部分:MATLAB显示桌面的基本布局

    https://cn.mathworks.com/help/matlab/learn_matlab/desktop.html

    1.启动MATLAB后,桌面会显示默认布局,主要有以下三个部分:

    • 当前文件夹
    • 命令行窗口
    • 工作空间

    2.在MATLAB中一般需要创建变量和调用函数。

    直接在命令行中输入变量名以及其值即可(比如:a = 1),多个变量的创建同理,不再赘述。

    需要注意的是,如果没有定义输出变量,MATLAB会使用一个名为ans的变量来储存计算结果。

    这里写图片描述

    3.如果语句以分号结束,表示MATLAB内部会执行这一运算,但是命令行不对计算结果进行输出。

    第二部分:矩阵和数组

    https://cn.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html

    大多数的编程语言一次性只能对一个数进行操作,而MATLAB主要被用来对整个矩阵或者数组进行操作。不管是什么类型的数据,所有的额MATLAB变量都是数组。矩阵是常用于线性代数的二维数组。

    1.数组的创建

    • 在一个单行中创建一个拥有四个元素的数组,其各个元素之间用逗号或者空格隔开。
      例如:
      a = [1 2 3 4]
      这种数组叫做单行矩阵(行向量)。
    • 创建一个多行矩阵,其各个行之间用分号隔开。
      例如:
      b = [1,2;3,4;5,6]
    • 还可以用函数来创建矩阵。
      例如:创建一个5行1列每一个元素都是0的列向量。
      z = zero(5,1)
      这里写图片描述

    2.矩阵和数组的操作

    • 在MATLAB中,允许用一个单一的运算或者函数对矩阵中所有的数据进行处理(操作)。

    例如:
    这里写图片描述

    • 如果要对矩阵进行转置,则使用单引号(‘)
      例如:a’
      这里写图片描述

    • 可以通过执行标准矩阵乘法,通过*运算符来计算内积。

    这是我自己的结果截图……很明显是不对滴~
    这里写图片描述

    然后下面是官网爸爸给的运行结果。
    这里写图片描述

    我们都知道,一个矩阵与它的逆矩阵相乘的结果的确应该等于单位矩阵。至于这里为什么不对,还希望各位大佬们能不吝赐教,大恩不言谢~

    这里要注意的是,p不是一个整数值矩阵,MATLAB存储数字是以浮点型存储的,真实值和它的浮点数在运算时有小小的不同,我们可以使用格式化命令,显示更多的小数位数。

    比如:
    format long
    p = a*inv(a)

    可以使用format short来重置到较短格式的使用。

    • x = a.*a用来表示对矩阵的每一个元素做平方操作。
      若需要对每一个元素做立方运算,则用x = a.^3(如图)

    这里写图片描述

    • 矩阵的扩充
      行方向上:A = [a,a]
      列方向上:A = [a; a]

      这里写图片描述

    • 复数
      复数由实部和虚部组成,它的虚部是-1的平方根。
      即sqrt(-1) = 0.0000 + 1.0000i
      一般用i或者j来代表复数的虚部部分。

    第三部分:数组的索引

    https://cn.mathworks.com/help/matlab/learn_matlab/array-indexing.html

    MATLAB中的每一个变量都是可以存储多个值的数组。如果想要使用数组中的某一个值,则需要用到索引。

    1.单个元素的索引

    从一个数组中索引某个元素一般有两种方法:
    第一种比较常见:数组名加要索引的元素所在的行和列,例如A(2,4) = 8。
    第二种不太常用:数组名加一个下标,该下标按列遍历。A(14) = 8。【这里不太好表达,上图吧~】

    这里写图片描述

    再多说一句,其实A(14)中的14表示按列数第14个元素!
    利用下标索引元素这种方式叫做线性索引
    注意:如果索引超出矩阵维度,MATLAB会报错。

    2.多个元素的索引
    引用数组的多个元素,使用冒号操作符m : n(m,n分别表示索引开始和结束的范围)

    例1索引第二列第1个元素到第3个元素。
    例2索引第三行全部元素

    这里写图片描述

    不难发现,索引行则将行数放在逗号前;索引列要将列数放在逗号后。

    另外,冒号运算符也可以帮助创建一组等距的矢量值,例如:
    B = 0:10:100
    —->B = 0 10 20 30 40 50 60 70 80 90 100
    输出一个从0到100步长为10的数组。

    第四部分:工作空间变量

    https://cn.mathworks.com/help/matlab/learn_matlab/workspace.html

    工作区包含你创建的变量或者从数据文件或其他程序导入到MATLAB中的变量。例如,我现在创建两个变量 :
    A = magic(4)
    B = rand(3,5,2)

    • 我们可以通过whos来看工作空间的内容。

    这里写图片描述

    • 工作区的变量在退出MATLAB后就不存在了。
      所以一般使用save myfile.mat命令来保存工作区变量以便以后使用。
      保存操作将当前工作文件夹中的工作区保存在一个压缩文件中,该文件的扩展名为.MAT,称为MAT文件。
    • 如果想要清空工作空间里的所有变量,则需使用clear命令
    • 使用load myfile.mat命令将MAT文件中的数据恢复到工作区

    第五部分:文本和字符

    https://cn.mathworks.com/help/matlab/learn_matlab/character-strings.html

    • 在处理文本时,将其中的字符序列用单引号括起来,可以将文本分配给变量。
      例如:myText = ‘Hello, world’;
    • 如果文本本身包括一个单引号,则在定义时使用两个单引号。
      例如:otherText = ‘You”re right’

    这里写图片描述

    同所有的MATLAB变量一样,上述创建的两个变量也都是数组,他们的数据类型是字符型。注意:字符数组也可以像数字数组那样用方括号括起来表示。

    • 要将数字转换成字符,就要用到函数。例如num2str()或者int2str()。

      这里写图片描述

    第六部分:函数调用

    https://cn.mathworks.com/help/matlab/learn_matlab/calling-functions.html

    MATLAB提供了大量函数来执行计算任务,函数相当于其他编程语言中的子程序或方法。
    例如求最大值的函数,max()。

    • 将输入参数用括号括起来,如果有多个参数,则将参数用逗号隔开。
      一般通过将函数值赋给某个变量这种方式来返回(输出)函数值,如果有多个输出参数,则需将它们用方括号括起来。
      例如:
      A = [1 3 5];
      [maxA,location] = max(A)

    这里写图片描述

    • 可以用单引号括住任何字符进行输入。
      例如:
      disp(‘hello world’)
      ===>输出 hello world

    disp()用来显示变量的内容,括号里可以是字符,结构体,矩阵等等,类似于c语言的printf()。


    • clc函数被用来清空命令行。

    第七部分:二、三维图

    https://cn.mathworks.com/help/matlab/learn_matlab/plots.html

    • 折线图

      (1) 画图

      x = 0:pi/1000:2*pi;
      y = sin(x);
      plot(x,y)

    这里x就用到了前面说到的索引。x表示0到2*pi之间步长为pi/100的值。
    二维图如下:

    这里写图片描述

    这里多说一下步长,步长决定了横轴取值的密集程度。下图是将步长改为pi/10之后的图像。

    这里写图片描述

    对比图中标记处不难发现,步长增大,图像的精确度变低,所以这里尽量保证步长足够小,使得x可以取到足够多的值

    (2) 坐标
    我们可以对横轴和纵轴分别命名,并对上述正弦图像加上标题。

    这里写图片描述

    (3)plot(x, y, ‘r–’)
    通过在图像函数中添加第三个输入参数,可以用红色虚线绘制与原来相同的变量。

    这里写图片描述

    其中第三个参数规定了线条的颜色、样式和标记的字符。(例如上例中的‘r–’表示红色虚线。)标记是指对每一个数据点用参数所给的标记形式进行表示。(例如’g:o’表示用‘o’连成一条绿色的线输出=.=我这个解释没谁了,讲不清楚还是上图吧…..)

    这里写图片描述

    这样的标记除了’o’,还有‘+’,‘*’等等。

    这时候你会发现,我们开始为第一个图定义的标题和标签不再显示在当前图形窗口中了。这是因为在默认情况下,重新调用一个绘图函数,MATLAB就会清除数据,重置轴和其他元素来准备新的绘图。
    若要将图添加到现有图形,使用hold命令即可。

    这里写图片描述

    在使用hold off或close the window命令之前,所有的图都会出现在当前的图形窗口中。

    • 3D图像

      3D图像通常用有两个参数的函数来定义一个曲面,z = f(x,y) 。
      对于z,首先使用meshgrid命令在函数定义域内创建若干(x,y)。

    这里写图片描述

    这里需要注意的是,在matlab中,.2代表0.2
    (-2:.2:2)表示在-2到2的区间上以0.2的长度为间隔的向量;

    当变量x是由向量、数组或隔开的点组成(如x=0:0.1:1)时,则后面有x变量的方程要加点 (.),例如:y=x.*exp(-x.*2)
    但是如果x是连续的变量,如syms x,则方程写成y=x*exp(-x*2)。

    • Subplots
      你可以用subplot函数在同一窗口的不同区域显示多个图像。
      subplots函数的前两个输入参数显示当前窗口每行每列的图像数量,第三个输入参数指定活动区域。例如,在图形窗口创建四个区域来分别输出图像。

    这里写图片描述

    mesh()生成由X,Y和Z指定的网线面,由C指定的颜色的三维网格图。

    第八部分:程序和脚本

    https://cn.mathworks.com/help/matlab/learn_matlab/scripts.html

    • 示例脚本(从均匀分布中生成随机数据并计算平均值。绘制数据和平均值。)
      用edit命令来创建脚本:
      edit plotrand
      这样就打开了一个叫plotrand.m的空文件,输入产生随机数向量的代码:
    n = 50;
    r = rand(n,1);
    plot(r)
    

    然后,添加代码在图中绘制水平线:

    m = mean(r);
    hold on
    plot([0,n],[m,m])
    hold off
    title('Mean of Random Uniform Data')
    

    在写代码过程中,可用(%)在代码之间添加注释。
    最后保存脚本,在命令行窗口输入plotrand运行脚本。

    这里写图片描述

    • 循环和条件语句
      在脚本中,可以循环使用部分代码,并且通过使用(for,while,if,switch等关键字)来执行这部分代码。
      例如,创建一个叫calcmean.m的脚本,利用for循环计算五个随机样本的平均数和总平均数。
    nsamples = 5;
    npoints = 50;
    
    for k = 1:nsamples
        currentData = rand(npoints,1);
        sampleMean(k) = mean(currentData);
    end
    overallMean = mean(sampleMean)

    现在,修改for循环,以便每次迭代时都可以查看结果。在运行脚本时,会先显示中间结果,再计算总体均值。

    for k = 1:nsamples
       iterationString = ['Iteration #',int2str(k)];
       disp(iterationString)
       currentData = rand(npoints,1);
       sampleMean(k) = mean(currentData)
    end
    overallMean = mean(sampleMean)
    
    calcmean

    在编辑器中,在calcmean.m的最后添加条件语句,使它根据不同的总体均值返回不同的信息。

    if overallMean < .49
       disp('Mean is less than expected')
    elseif overallMean > .51
       disp('Mean is greater than expected')
    else
       disp('Mean is within the expected range')
    end
    • 脚本位置
      MATLAB中,要运行脚本,文件必须位于当前文件夹或搜索路径中的文件夹中。
      默认情况下,MATLAB安装程序创建的MATLAB文件夹位于搜索路径上。如果要在另一个文件夹中存储和运行程序,需要将其添加到搜索路径中:在当前文件夹浏览器中选择文件夹,右键单击,然后选择“添加到路径”。

    第九部分:帮助和文档

    https://cn.mathworks.com/help/matlab/learn_matlab/help.html

    • 使用doc命令在单独的窗口中打开函数文档。

      doc mean

    • 键入左圆括号后暂停,MATLAB在命令窗口中就会显示函数提示(函数文档的语法部分)。

      mean(

    • 使用帮助命令后,在命令窗口中查看函数的简单用法概括。

      help mean

    以上就是MATLAB的基础入门知识,欢迎指正呦~

    展开全文
  • https://zhidao.baidu.com/question/401045516.html
  • matlab中寻找出array中符合要求的的位置,并赋值
  • 条件数的倒数:rcond(A):A为矩阵,rcond(A)为A的1范数的条件数的倒数的 估计值。如果A的条件数越好,那么其值在1.0附近;反之,则在无穷小附近。 %%矩阵的条件数 A = [11,2,3,4; 7,-2,-3,-4; 0.1,0.2,0.3,0.5; ...
  • matlab人脸识别论文

    万次阅读 多人点赞 2019-10-11 17:41:51
    在某些可以控制拍摄条件的场合,如警察拍罪犯照片时将人脸限定在标尺内,此时人脸的定位很简单。证件照背景简单,定位比较容易。在另一些情况下,人脸在图像 中的位置预先是未知的,比如在复杂背景下拍摄的照片,...
  • 在直接数字域设计中,我们常常需要用到PID算法,而PID算法投入单片机使用时,往往需要硬件的支持,在调试时非常麻烦。本文通过Matlab仿真的手段实现PID,方便了开发者对系统的设计和实时调试。
  • rcond--矩阵可逆的条件数估值

    千次阅读 2015-12-25 19:47:45
    【功能简介】求矩阵可逆的条件数估值。 【语法格式】 c=rcond(A)  返回矩阵A的1-范数可逆的条件数。对于好条件矩阵A,rcond(A)是接近1的数。对于差条件矩阵A,rcond(A)是接近0的数。和cond相比,rcond(A)在...
  • 对于给定的 n、条件数 cth 和值 s,Sumbench.m 计算一个 n 向量 x,其中 x(1)+...+x(n) = s 且其总和条件数约为 cth尖锐的界限。 还返回真实的条件编号。 给出了返回 x 的选项,使得精确和不完全是浮点数,但其值被...
  • 基于MATLAB的直接序列扩频通信系统仿真 前言 文章迭代更新 仿真流程图 关键技术细节 扩频解扰解扩部分 加扰去扰部分 加扰原理图 调制解调部分 调制原理图 解调原理图 高斯信道部分 实验结果 扩频增益为10时,walsh...
  • [英语] 这个例子展示了如何在 MATLAB 中创建一个条件变分自动编码器 (VAE) 来生成数字图像。VAE 生成具有 MNIST 数据集样式的手绘数字。与变分自动编码器 (VAE) 不同的是,条件 VAE 可以输入要生成的类标签,可以...
  • 含有三份代码,都是用matlab实现,分别是基于贝叶斯,基于朴素贝叶斯,基于最小错误率贝叶斯的手写数字识别代码。其中朴素贝叶斯用到了PCA,准确率达到95%
  • MATLAB 粒子群算法,例题与常用模版

    万次阅读 多人点赞 2018-09-06 18:09:18
    MATLAB 粒子群算法 本文学习自:Particle Swarm Optimization in MATLAB - Yarpiz Video Tutorial 与《精通MATLAB智能算法》 1. 简介: Particle Swarm Optimization ,粒子群优化算法,常用来找到方程...
  • 此函数使用预印本中讨论的算法生成具有预先分配的奇异值或预先分配的 2 范数条件数的矩阵: M. Fasi 和 NJ Higham。 “生成具有指定奇异值或条件数的极尺度矩阵”。 技术报告 2020.8,英国曼彻斯特大学曼彻斯特数学...
  • MATLABMATLAB的基础知识

    千次阅读 多人点赞 2017-04-12 11:52:00
    MATLAB的启动和退出1.MATLAB的启动有如下两种方式: 方式一:双击操作系统桌面上的MATLAB快捷方式,即可启动并打开MATLAB命令窗口。 方式二:单击【开始】菜单,依次指向【程序】→【MATLAB】即可启动并打开...
  • 基于MATLAB的语音信号处理

    万次阅读 多人点赞 2018-07-15 01:21:20
    基于MATLAB的语音信号处理摘要:语音信号处理是目前发展最为迅速的信息科学研究领域中的一个,是目前极为活跃和热门的研究领域,其研究成果具有重要的学术及应用价值。语音信号处理的研究,对于机器语言、语音识别、...
  • 模糊PID算法及其MATLAB仿真(1)

    万次阅读 多人点赞 2019-04-15 20:34:35
    根据其结构主要分为三种 [1](目前我查到的资料只看到以下三种): (1)模糊控制和PID控制各自在相应的条件下执行自己的功能,条件作为一种开关(单刀双掷),当采用模糊控制好的时候则使用模糊控制,当使用PID控制...
  • BP神经网络的MATLAB实现

    万次阅读 多人点赞 2017-05-18 15:56:04
    接下来,我们利用MATLAB对BP神经网络进行实现。我们直接上代码,并进行解释。MATLAB 代码整个代码是基于BP神经网络矩阵形式编写的,对公式有疑惑的同学可以参考下上篇博文。sigmoid.mfunction [ out ] = sigmoid( in...
  • 潮流计算的matlab程序实现方法

    万次阅读 多人点赞 2018-06-17 22:25:18
    这是一个电气狗熬两个礼拜图书馆的成果,根据华中科技大学《电力系统分析》中原理编写,可用牛顿-拉夫逊和PQ分解法计算给定标幺值条件的潮流。本人水平有限,仅供参考,欢迎一起找Bug。 2019/11/17 添加算例系统图...
  • 计数(A,B) 计数 (A,B) 计算 A 中与 B 中指定的条件匹配的元素。 例子: 数据 = [1 2 3 4 3 2 7 6 9 1 1 2 5 9 9]; 计数(数据,'==9') 答案 = 3
  • matlab stem 函数使用方法

    万次阅读 2018-04-20 19:55:12
    例子:N=[0 1 2 3 4 5 6 7 8 9 10 11 12 ];X=[0 1 2 3 1 0 -1 -2 -3 -4 -5 1 2];M=N';subplot(2,2,1),stem(N...显示如图:N是序列号 即从0到12号共13个,注意必须和X中的的个数相同,不匹配的话会提示错误;若只...
  • 蚁群算法---matlab代码

    万次阅读 多人点赞 2017-08-03 00:39:50
    蚁群算法—matlab代码文明转帖,代码摘自:FPGA机器学习之蚁群算法 matlab程序蚁群算法简介 蚁群是自然界中常见的一种生物,人们对蚂蚁的关注大都是因为“蚁群搬家,天要下雨”之类的民谚。然而随着近代仿生学的...
  • matlab条件判断配合输出

    千次阅读 2017-10-16 19:36:34
    matlab和octave都差不多(对于像我一样比较菜鸟的) 如题,代码如下:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,625
精华内容 9,050
关键字:

matlab条件数

matlab 订阅