假设我有一个nxm
矩阵,并希望将每一行视为函数中的向量。所以,如果我有一个添加向量的函数,找到向量的笛卡尔积,或者由于某种原因需要输入几个向量,我希望该函数将矩阵中的每一行都视为向量。
答案 0 :(得分:0)
这听起来像是Matlab中的一个非常简单的操作。您可以使用ith
访问矩阵A
的{{1}}行。例如,要添加行A(i, :)
和i
,您可以执行j
。
答案 1 :(得分:0)
给定nxm矩阵A:
编辑: 我无法在上面添加评论,因为我没有50分,但你应该发布功能setprod。我认为你应该能够做你想做的事情,通过迭代你作为参数传递的矩阵,使用for-next语句。
答案 2 :(得分:0)
我认为你将不得不循环:
输入
M = [1 2;
3 4;
5 6];
步骤1:生成所有可能行对(行索引号)的列表
n = size(M,1);
row_ind = nchoosek(1:n,2)
步骤2:循环遍历这些索引并生成产品集:
S{n,n} = []; //% Preallocation of cell matrix
for pair = 1:size(row_ind,1)
p1 = row_ind(pair,1);
p2 = row_ind(pair,2);
S{p1,p2} = setprod(M(p1,:), M(p2,:))
end
答案 3 :(得分:0)
使用以下两个步骤将矩阵转换为行向量列表:
mat2cell
将矩阵转换为矩阵行的单元格数组。示例:让
v1 = [1 2];
v2 = [10 20];
v3 = [11 12];
M = [v1; v2; v3];
让fun
成为一个接受任意数量向量作为输入的函数。然后
C = mat2cell(M, ones(1,size(M,1)));
result = fun(C{:});
与result = fun(v1, v2, v3)
相同。