【发布时间】:2014-11-02 07:47:08
【问题描述】:
假设我有一个nxm 矩阵并希望将每一行视为函数中的向量。因此,如果我有一个添加向量的函数,找到向量的笛卡尔积或出于某种原因接受多个向量的输入,我希望该函数将矩阵中的每一行视为一个向量。
【问题讨论】:
-
这个问题太笼统了,很难回答。
A(i,:)为您提供矩阵的第 i 行作为向量,根据您的情况,您可以使用for-loop 或arrayfun。 -
对不起,我试图使它足够通用以适用于所有人。我有一个名为 setprod 的函数,它采用 2 个或更多向量的笛卡尔积。我想在该函数中输入一个大矩阵,并将每一行作为一个向量读取。这更清楚了吗?
-
您是要获取每对向量的乘积,还是仅获取一些向量与其他一些向量的乘积?
-
所有向量的笛卡尔积。因此,如果 [1 2] [3 4] [5 6] 是我的向量,我想要 [1 3 5, 1 3 6, 1 4 6....] 函数的输入是 [1 2; 3 4; 5 6]
-
所以我认为您需要 EDIT 您的问题,并在您之前的评论中以确切的形状添加 FULL 输出作为示例输入你想要的(即到目前为止,你的输出只是一个行向量,你正在混合使用的空格和逗号,就像你做同样的事情一样:/)。这是如何在 matlab 中做笛卡尔积:stackoverflow.com/questions/9834254/cartesian-product-in-matlab。要对逐行对进行操作,您可以使用
pdist2,但可能不适用于集合,否则请使用nchoosek(1:n,2)为循环创建成对索引
标签: matlab function matrix vector indexing