我被困在创建矩阵矩阵(在这种情况下为向量)
到目前为止我有什么
index = zeros(size(A)) // This is some matrix but isn't important to the question
indexIndex = 1;
for rows=1:length(R)
for columns=1:length(K)
if(A(rows,columns)==x)
V=[rows columns]; // I create a vector holding the row + column
index(indexIndex) = V(1,2) // I want to store all these vectors
indexIndex = indexIndex + 1
end
end
end
我尝试了各种方法从V中获取信息(例如V(1:2)),但似乎没有任何工作正常。
换句话说,我试图获得一系列积分。
提前致谢
答案 0 :(得分:1)
我完全不明白你的问题。 A的大小是多少?什么是x,K和R?但在某些假设下,
您可以使用list
// Create some matrix A
A = zeros(8,8)
//initialize the list
index = list();
// Get the dimensions of A
rows = size(A,1);
cols = size(A,2);
x = 0;
for row=1:rows
for col=1:cols
if(A(row,col)==x)
// Create a vector holding row and col
V=[row col];
// Append it to list using $ (last index) + 1
index($+1) = V
end
end
end
另一种方法是利用多维矩阵也可以用单个值索引的事实。
例如,创建一个名为a
的随机矩阵:
-->a = rand(3,3)
a =
0.6212882 0.5211472 0.0881335
0.3454984 0.2870401 0.4498763
0.7064868 0.6502795 0.7227253
访问第一个值:
-->a(1)
ans =
0.6212882
-->a(1,1)
ans =
0.6212882
访问第二个值:
-->a(2)
ans =
0.3454984
-->a(2,1)
ans =
0.3454984
这样就证明了单个索引的工作原理。现在将它应用于你的问题并敲出一个for循环。
// Create some matrix A
A = zeros(8,8)
//initialize the array of indices
index = [];
// Get the dimensions of A
rows = size(A,1);
cols = size(A,2);
x = 0;
for i=1:length(A)
if(A(i)==x)
// Append it to list using $ (last index) + 1
index($+1) = i;
end
end
如果你只需要符合某种条件的值,你也可以做这样的事情
values = A(A==x);
比较双打时要小心,这些并不总是(不)等于你的期望。