我在 matlab 中有一个函数,它接受一个 nx1 矩阵。
我有一个 nx2 暗淡的矩阵 X
如何将矩阵 X 发送到 X 的每一行作为元素的函数?
如果我理解正确,你必须做类似的事情
for i=1:size(X,1)
f(X(i,:)');
end
这意味着您将每一行f
按顺序传递给函数,转置为列向量。
相反,如果您想X
对行进行线性化,则必须执行以下操作:
Xlin = reshape(X',numel(X),1);
f(Xlin);
有关索引矩阵的信息和示例,请查看 MathWorks 网站上的MATLAB文章中的此矩阵索引。要从矩阵中选择行,您可以执行以下操作:
>> m = rand(5, 2)
m =
0.8147 0.0975
0.9058 0.2785
0.1270 0.5469
0.9134 0.9575
0.6324 0.9649
>> m(1,:)
ans =
0.8147 0.0975
>> m(end,:)
ans =
0.6324 0.9649
矩阵的第一个索引对应于行,第二个索引对应于列。这里:
作为第二个索引选择适当行的所有列。如果您有一个函数func
,并且上面的矩阵m
,您可以将每一行传递m
给func
如下:
for i = 1:length(m)
func(m(1,:)')
end
注意转置,它将每一行转换m
为一个2x1
数组,即一个列向量,而不是一个行向量。