MATLAB知识点:triu函数和tril函数--返回矩阵的上三角部分和下三角部分。

这篇具有很好参考价值的文章主要介绍了MATLAB知识点:triu函数和tril函数--返回矩阵的上三角部分和下三角部分。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 讲解视频:可以在bilibili搜索“MATLAB教程新手入门篇——数学建模清风主讲”。

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


以下内容节选自第三章3.5节

triu函数tril函数,它们用法相同,可分别用来返回矩阵的上三角部分和下三角部分。
  • triu(A,k)返回A的第k条对角线上以及该对角线上方的元素,其他位置元素用0填充,k等于0时可以简写成triu(A)。

  • tril(A,k)返回A的第k条对角线上以及该对角线下方的元素,其他位置元素用0填充,k等于0时可以简写成tril(A)。

默认值k = 0是主对角线,k > 0位于主对角线上方,而k < 0位于主对角线下方。

MATLAB知识点:triu函数和tril函数--返回矩阵的上三角部分和下三角部分。,MATLAB知识点详解,matlab,矩阵,数学建模

MATLAB知识点:triu函数和tril函数--返回矩阵的上三角部分和下三角部分。,MATLAB知识点详解,matlab,矩阵,数学建模

下面我们用这两个函数来做一个有趣的练习题:生成一个n阶(例如n=4)的对称矩阵,里面的每个元素都是位于区间[0, 9]中的随机整数。

答案如下:

n   = 4; 
num   = n*(n-1)/2; 
A   = zeros(n);
A(triu(true(n),1))   = randi([0,9],num,1);
A   = A+A'+diag(randi([0,9],n,1))
 
% 随机生成的对称矩阵:
     7     6     0     9
     6     3     8     6
     0     8     6     7
     9     6     7     1

这几行代码综合性非常强,核心的思路就是将这个对称矩阵分成三个部分:首先随机生成对称矩阵的上半部分(不包括主对角线),这是一个上三角矩阵;然后将其转置来确保矩阵的元素是对称的;最后使用diag函数生成一个随机的对角矩阵。将上半部分、下半部分以及对角矩阵相加即可得到这个对称矩阵。

具体代码的解释如下:对于一个n阶的对称矩阵,它的上三角部分(不包括主对角线)有n*(n-1)/2个元素,上方代码中将其赋值给num;矩阵A初始化为一个n阶全为0的矩阵;true(n)创建了一个n阶的逻辑矩阵,其中所有元素都为逻辑值1;triu(true(n),1)返回了一个不包括主对角线的上三角的逻辑矩阵,我们用它对A矩阵进行逻辑索引; randi([0,9],num,1)生成了一个有num个元素的向量,其中每个元素都是位于区间[0, 9]中的随机整数;A(triu(true(n),1))选取了矩阵A的上三角部分(不包括主对角线),然后将其赋值为随机生成的整数;A'是矩阵A的转置,由于我们已经填充了A的上三角部分,将它转置我们可以确保下三角部分与上三角部分是对称的;diag(randi([0,9],n,1))生成了一个主对角线上的元素为区间[0, 9]中的随机整数,而其它地方都为0的n阶矩阵;将这三个矩阵相加,即可得到最终的对称矩阵。

以后我们学了循环语句后,还可以利用循环语句生成,虽然循环语句更直观且代码易于编写,但直接基于矩阵操作在MATLAB中通常更高效,尤其是对于大型矩阵。文章来源地址https://www.toymoban.com/news/detail-823038.html

到了这里,关于MATLAB知识点:triu函数和tril函数--返回矩阵的上三角部分和下三角部分。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB知识点:prctile函数(★★★☆☆)计算百分位数

     讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章:课后习题讲解中拓展的函数 在讲解第三章课后习题的过程中,我给大家拓展了一些讲义中没有

    2024年04月26日
    浏览(42)
  • MATLAB知识点:all、any和find函数

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.4 逻辑运算 下面我们介绍三个非常重要的函数,它们的作用请看下表: ​ 其中,all函数和

    2024年04月17日
    浏览(41)
  • MATLAB知识点:isempty函数(★★★★☆)判断数组是否为空

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章:课后习题讲解中拓展的函数 在讲解第三章课后习题的过程中,我给大家拓展了一些讲义中没有

    2024年04月22日
    浏览(52)
  • 分块矩阵知识点整理:

    1.分块方法:横竖线不能拐弯,思想为将矩阵分块看作向量计算 2.标准型         不一定是方的         特殊性:经过分块后会出现单位矩阵和0矩阵 3.分块矩阵的运算:         1.加减乘的运算与向量运算相同 4.分块矩阵求转置:         1.将子块看作普通元素求转置    

    2024年02月01日
    浏览(32)
  • C++ Primer 6.3 返回类型和return语句 知识点+练习题

    用在返回值类型为void的函数中,可以不写return,因为此类函数会在最后一句隐式执行return; 可以自己写return;在函数里类似于break,直接退出 除return;还可以return func();此时func为返回值为void的函数 先拷贝再传值 不要返回局部对象的引用或指针 :函数完成后,它所占用的

    2024年01月17日
    浏览(66)
  • MATLAB知识点:向量元素的引用

    讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.2.2节 对向量元素的引用(即提取向量指定位置的值)有两种情形,分别是提取向量中的单个元素

    2024年02月19日
    浏览(43)
  • Python函数知识点

         函数是指一段可以直接被另一段程序或代码引用的程序或代码,也叫做子程序、方法。现阶段可以理解成函数是带名字的代码块。 函数需要先定义再使用!     举个例子来说,想要判断一个三角形是不是直角三角形,需要用到勾股定理,只有先明确的定义出勾股定理是

    2023年04月09日
    浏览(41)
  • 函数的知识点

    1.下列选项中,能正确调用和运行函数的是(B) A、(function(){    console.log(1);   }) B、fun();   function fun(){console.log(1)} C、fn();   var fn = function(){console.log(1);}; D、var fn = new Function(a,console.log(a));   fn(1); 解析:A不会自动调用函数,若要调用函数,应改为(function(){consol

    2024年02月13日
    浏览(32)
  • MATLAB知识点:median :计算中位数

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.1节 中位数又称中值,我们将数据按从小到大的顺序排列,在排列后的数据中居于中间位置的

    2024年04月11日
    浏览(41)
  • ffmpeg的函数调用知识点

    av_dump_format 会打印出AVFormatContext的内容,打印的内容是什么意思? 我们使用av_dump_format打印出如下信息: 什么是文件的容器格式? \\\"mov,mp4,m4a,3gp,3g2,mj2\\\" 表示输入文件的容器格式(Container Format)支持的扩展名。 在多媒体文件中,容器格式用于组织和存储多个音视频流以及其他

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包