如何将所有位置值分配给新变量?
A = [ -1 0 -2 0 0
2 8 0 1 0
0 0 3 0 -2
0 -3 2 0 0
1 2 0 0 -4];
a=size(A);
b=size(A);
c=0;
position=0;
for i=1:a
for j=1:b
if A(i,j) ~=0
c=c+1;
position=position+1;
S(c,:)=[position,i,j,A(i,j)];
end
end
end
结果: S =
1 1 1 -1
2 1 3 -2
3 2 1 2
4 2 2 8
5 2 4 1
6 3 3 3
7 3 5 -2
8 4 2 -3
9 4 3 2
10 5 1 1
11 5 2 2
12 5 5 -4
喜欢的东西 位置= 1 2 3 4 五 6 7 8 9 10 11 12
对于我来说同样的事情
答案 0 :(得分:2)
我认为你可以通过find
function:
A = [ -1 0 -2 0 0
2 8 0 1 0
0 0 3 0 -2
0 -3 2 0 0
1 2 0 0 -4];
[I,J,V] = find(A);
将(i,j)
和I
中的非零元素的J
位置分别放在V
中。如果您真的想要position
向量,可以使用position = 1:length(V);
创建它。
答案 1 :(得分:0)
在你的代码中,你总是有c=position
,所以一个人必须是多余的。在循环结束时,您可以通过执行position
来提取S(:,1)
的值,这会给出S
的第一列。同样,您可以通过i
获取S(:,2)
的值。那是你在找什么?