如何在不使用循环的情况下在matlab中处理矩阵的对角线?

利亚

假设我有一个矩阵,我想改变它的元素。我怎么能告诉matlab去那个(i,j)地方的元素例如:

matrix(i;j) ---> if i=j (then do something for example matrix(i;j)^2
                 else ( do something else)
matrix=rand(n)
  if (i=j)
   matrix(i,j)=(matrix(i.j))^
  else matrix(i,j)=matrix(i,j)*3
  end

现在我怎样才能到达矩阵的对角线?我是 matlab 的新手,我还没有找到答案:\我正在寻找提示或其他东西,但我不能使用循环!嘿,我得到了答案,但可以说我也希望对角线成正方形,我该怎么做??请帮忙

> if a=1 2 3
>      4 5 6
>      7 8 9 i want a at the end to be a= 1  6  9
>                              12 25 18
>                              49 24 81
NKN

很明显,您不了解 MATLAB 的基础知识。在这里,我将尝试解释您需要什么,但我鼓励您阅读 MATLAB 编程的基本文档。

如果您的矩阵被调用,A则可以通过该元素的索引(行数和列数)访问每个元素,例如A(2,3)为您提供第二行和第三列的元素。

diag(A)给出了A作为向量的所有对角线元素

您提到的可以通过不同的方式完成,其中一些比其他方式更有效,但对于初学者来说可能更困难。最简单的方法之一是使用两个 for 循环。第一个循环在矩阵的行上移动,而第二个循环在列上移动。目标是一一检查所有元素。

在这里,我们使用两个变量iijj来计算矩阵的行和列。ii在行上移动,因此它必须从 1 计数到矩阵的行数。对使用变量的列也是如此jj此外,为了找到矩阵的行数和列数,我们使用函数size

在两个 for 循环中,我们检查元素是否在主对角线上ii==jj,如果不是,则对该元素执行其他操作。

for ii=1:size(A,1)
    for jj=1:size(A,2)
        if ii==jj
            A(ii,jj) = A(ii,jj)^2;
        else
            A(ii,jj) = A(ii,jj)*3;
        end
    end
end

一种更有效的解决方案如下:

diag(diag(A)).^2 + (tril(A,-1)+triu(A,1))*3

第一部分计算一个对角矩阵,其中的元素位于 的主对角线上A第二部分得到矩阵的上下三角部分。

例子:

A = [1 2 3 4;
    1 2 3 4;
    4 3 2 1;
    4 3 2 1];


>> diag(diag(A))

ans =

     1     0     0     0
     0     2     0     0
     0     0     2     0
     0     0     0     1


>> (tril(A,-1)+triu(A,1))

ans =

     0     2     3     4
     1     0     3     4
     4     3     0     1
     4     3     2     0

在哪里

diag(diag(A)) + (tril(A,-1)+triu(A,1)) equals to A

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在r中给定对角线和非对角线元素的情况下填充矩阵?

来自分类Dev

如何填充对角线并忽略R中矩阵的对角线?

来自分类Dev

如何在Python 3.3.5中添加矩阵的对角线

来自分类Dev

在不使用numpy的情况下获得对角线?

来自分类Dev

在不使用numpy的情况下获得对角线?

来自分类Dev

如何从这些循环中仅获取矩阵的对角线?

来自分类Dev

在Matlab中使用逐元素加法将值添加到矩阵的对角线

来自分类Dev

在Matlab中使用逐元素加法将值添加到矩阵的对角线

来自分类Dev

在TensorFlow中获取矩阵的对角线

来自分类Dev

在python中填充方矩阵的对角线

来自分类Dev

使用numpy将矩阵的对角线归零

来自分类Dev

使用 R 添加矩阵的对角线

来自分类Dev

矩阵的对角线绑定

来自分类Dev

矩阵的对角线总和

来自分类Dev

矩阵的对角线绑定

来自分类Dev

填充矩阵的对角线

来自分类Dev

在Matlab中根据两个矩阵的对角线元素匹配两个矩阵

来自分类Dev

如何在不使用for循环的情况下在matlab中计算二元?

来自分类Dev

如何使用for循环更新协方差矩阵中的对角线?

来自分类Dev

在不使用for循环的情况下建立对角矩阵

来自分类Dev

如何计算Tensorflow中的所有二阶导数(仅是Hessian矩阵的对角线)?

来自分类Dev

如何在Matlab中沿对角线重复向量

来自分类Dev

我如何在使用对角线(非对角线)矩阵的IDL中最佳地优化矩阵乘法

来自分类Dev

如何在不使用循环和递归的情况下在Java中打印数组

来自分类Dev

如何在不使用循环的情况下在 R 中创建一个大列表

来自分类Dev

如何在不使用 for 循环的情况下在 R 中实现动态计数?

来自分类Dev

如何在不使用内置函数的情况下在matlab中翻转图像?

来自分类Dev

如何在不使用numpy的情况下在python中的矩阵中创建附近数字总和的矩阵

来自分类Dev

如何在不使用这么多嵌套循环的情况下在矩阵中找到成对的数字?

Related 相关文章

  1. 1

    如何在r中给定对角线和非对角线元素的情况下填充矩阵?

  2. 2

    如何填充对角线并忽略R中矩阵的对角线?

  3. 3

    如何在Python 3.3.5中添加矩阵的对角线

  4. 4

    在不使用numpy的情况下获得对角线?

  5. 5

    在不使用numpy的情况下获得对角线?

  6. 6

    如何从这些循环中仅获取矩阵的对角线?

  7. 7

    在Matlab中使用逐元素加法将值添加到矩阵的对角线

  8. 8

    在Matlab中使用逐元素加法将值添加到矩阵的对角线

  9. 9

    在TensorFlow中获取矩阵的对角线

  10. 10

    在python中填充方矩阵的对角线

  11. 11

    使用numpy将矩阵的对角线归零

  12. 12

    使用 R 添加矩阵的对角线

  13. 13

    矩阵的对角线绑定

  14. 14

    矩阵的对角线总和

  15. 15

    矩阵的对角线绑定

  16. 16

    填充矩阵的对角线

  17. 17

    在Matlab中根据两个矩阵的对角线元素匹配两个矩阵

  18. 18

    如何在不使用for循环的情况下在matlab中计算二元?

  19. 19

    如何使用for循环更新协方差矩阵中的对角线?

  20. 20

    在不使用for循环的情况下建立对角矩阵

  21. 21

    如何计算Tensorflow中的所有二阶导数(仅是Hessian矩阵的对角线)?

  22. 22

    如何在Matlab中沿对角线重复向量

  23. 23

    我如何在使用对角线(非对角线)矩阵的IDL中最佳地优化矩阵乘法

  24. 24

    如何在不使用循环和递归的情况下在Java中打印数组

  25. 25

    如何在不使用循环的情况下在 R 中创建一个大列表

  26. 26

    如何在不使用 for 循环的情况下在 R 中实现动态计数?

  27. 27

    如何在不使用内置函数的情况下在matlab中翻转图像?

  28. 28

    如何在不使用numpy的情况下在python中的矩阵中创建附近数字总和的矩阵

  29. 29

    如何在不使用这么多嵌套循环的情况下在矩阵中找到成对的数字?

热门标签

归档