我在MATLAB中使用两个表:
A1_Table [m*r]
A2_Table [m*q]
其中表格具有不同的列数但行数相似,并且它遵循r>q
。实际上,A2_Table
是A1_Table
的子样本,这意味着A1_Table
中的所有矩阵条目也可以在A2_Table
中找到。
与每列相关联的是 VariableName ,每行都有 RowName 。我想要做的是将A1_Table
中的所有条目设置为零,其中A2_Table
的值大于零。这是我的表现:
[r,c] = find(table2array(A2_Table)) ;
for i = 1 : length(r)
A1_Table(A2_Table.Properties.RowNames(r(i)),A2_Table.Properties.VariableNames(c(i))) = {0} ;
end
如您所见,我通过行和列名称(关键字)访问A1_Table
中的相应条目。此过程有效,但速度非常慢,因为存在需要运行循环的200万个值。有什么想加快这个过程吗?感谢
答案 0 :(得分:1)
这是一种方式。它似乎很好地扩展:
[