我有一个数组
def main():
root = Tk()
CarParkGui(root)
root.mainloop()
main()
有没有办法可以将数组的所有坐标对转换为线性索引,以便:
A = [3, 4; 5, 6; 4, 1];
其中(3,4),(5,6)和(4,1)分别由1,2和3表示。 非常感谢!
我需要的原因是因为我需要循环遍历数组A,以便我可以使用每个坐标对(3,4),(5,6)和(4,1) ) 同时。这是因为我需要将这些对中的每一对都送入一个函数,以便进行另一次计算。请参阅下面的伪代码:
A = [1, 2, 3]'
,for ii = 1: length(A);
[x, y] = function_obtain_coord_pairs(A);
B = function_obtain_fit(x, y, I);
end
,ii = 1
和x=3
。下一次迭代将使用y=4
,x=5
等对
基本上会发生什么是我的kx2数组将被转换为kx1数组。谢谢你的帮助。
答案 0 :(得分:0)
以下是您的代码的更正版本:
A = [3, 4; 5, 6; 4, 1];
for k = A.'
B = function_obtain_fit(k(1),k(2),I)
end
通过直接在A
上进行迭代,您会遍历A
的列。因为您要遍历行,我们需要A.'
。因此,如果我们只显示k
,则为:
for k = A.'
k
end
输出是:
k =
3
4
k =
5
6
k =
4
1
答案 1 :(得分:0)
调整你的代码,你想要的是@Ander在评论中建议的......
您的代码
for ii = 1:length(A);
[x, y] = function_obtain_coord_pairs(A);
B = function_obtain_fit(x, y, I);
end
改编代码
for ii = 1:size(A,1);
x = A(ii, 1);
y = A(ii, 2);
B = function_obtain_fit(x, y, I); % is I here supposed to be ii? I not defined...
end
您不熟悉索引会让我觉得您的function_obtain_fit
函数可能会被矢量化以接受整个矩阵A
,但那是另一天的问题!
例如,您根本不需要定义x
或y
...
更好的代码
for ii = 1:size(A,1);
B = function_obtain_fit(A(ii, 1), A(ii, 2), I);
end