我在matlab中有一个接受nx1矩阵的函数。
我有一个nx2 dims的矩阵X
如何将矩阵X发送到X的每一行作为元素的函数?
答案 0 :(得分:1)
如果我理解正确,你必须做类似
的事情for i=1:size(X,1)
f(X(i,:)');
end
表示您按顺序将每一行传递给函数f
,并将其转换为列向量。
如果您希望在行上线性化X
,则必须执行以下操作:
Xlin = reshape(X',numel(X),1);
f(Xlin);
答案 1 :(得分:1)
有关索引矩阵的信息和示例,请查看MathWorks网站上的这篇matrix indexing in 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
数组,即列向量,而不是行向量。