【发布时间】:2011-10-30 11:31:11
【问题描述】:
可能重复:
How can I change the values of multiple points in a matrix?
我有一个矩阵A 和三个相同长度的向量r,保存要分配的行的索引,c,保存要分配的列的索引,以及v包含要分配的实际值。
我想要得到的是所有i 的A(r(i),c(i))==v(i)。但是在做
A(r,c)=v;
不会产生正确的结果,因为 matlab 将其解释为选择 r 和 c 的所有可能组合并为其分配值,例如
n=5;
A=zeros(n);
r=1:n;
c=1:n;
A(r,c)=1;
产生一个矩阵,我想在其中获得单位矩阵,因为我想要每个 i 的 A(r(i),c(i))==1,即只有对角线上的元素应该受到影响。
如何在没有for 循环的情况下达到预期的效果?
【问题讨论】:
-
@Amro - 虽然我同意这两个问题的答案非常相似,但问题是不同的 - 我想知道如何分配给矩阵,而另一个问题想知道如何隐藏矩阵转化为向量。在寻找我的问题的答案时,一个人不会到达另一个问题。
-
我没有对你投反对票,我只是将另一个问题链接为相似(而不是投票关闭为重复)..
标签: matlab indexing matrix variable-assignment