0

我在 matlab 中有一个函数,它接受一个 nx1 矩阵。

我有一个 nx2 暗淡的矩阵 X

如何将矩阵 X 发送到 X 的每一行作为元素的函数?

4

2 回答 2

1

如果我理解正确,你必须做类似的事情

for i=1:size(X,1)

  f(X(i,:)');

end

这意味着您将每一行f按顺序传递给函数,转置为列向量。

相反,如果您想X对行进行线性化,则必须执行以下操作:

Xlin = reshape(X',numel(X),1);
f(Xlin);
于 2012-06-11T10:38:44.533 回答
1

有关索引矩阵的信息和示例,请查看 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,您可以将每一行传递mfunc如下:

for i = 1:length(m)
    func(m(1,:)')
end

注意转置,它将每一行转换m为一个2x1数组,即一个列向量,而不是一个行向量。

于 2012-06-11T10:45:11.603 回答