假设我有一个矩阵,我想改变它的元素 . 如何告诉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
1 回答
很明显,您不了解MATLAB的基础知识 . 在这里,我将尝试解释您需要的内容,但我鼓励您阅读MATLAB编程的基本文档 .
如果您的矩阵被称为
A
,则可以通过该元素的索引(行数和列数)访问每个元素,例如A(2,3)
为您提供第二行和第三列的元素 .此外
diag(A)
将A
的所有对角元素作为向量 .你提到的可以用不同的方式完成,其中一些比其他方式更有效,但对初学者来说可能更难 . 最简单的方法之一是使用两个for循环 . 第一个循环在矩阵的行上移动,而第二个循环在列上移动 . 目标是逐个检查所有元素 .
在这里,我们使用两个变量
ii
和jj
来计算矩阵行和列 .ii
在行上移动,因此它必须从1到矩阵所具有的行数 . 对使用变量jj
的列也是如此 . 此外,要查找矩阵的行数和列数,我们使用函数size
.在两个for循环中,我们使用
ii==jj
检查元素是否在主对角线上,如果不是,则对该元素执行其他操作 .更有效的解决方案如下:
第一部分使用
A
主对角线上的元素计算对角矩阵 . 第二部分得到矩阵的上下三角形部分 .例:
哪里