相关疑难解决方法(0)

是否有一个accumarray()将矩阵作为"val"?

accumarray()val论点必须是一个向量.在我的情况下,我需要矩阵的列被求和(或平均).是否有功能或方法来实现这一目标?

我现在正在做的是for循环我分别对列值进行求和:

for iCol = 1:nCols
    means(:,iCol) = accumarray(labels', X(:,iCol));
end
Run Code Online (Sandbox Code Playgroud)

matlab grouping matrix accumarray

12
推荐指数
1
解决办法
4137
查看次数

整数的因式分解

在回答另一个,我偶然发现了这个问题其实我怎么能找到一个整数的所有因素,而不符号数学工具箱.

例如:

factor(60)
Run Code Online (Sandbox Code Playgroud)

收益:

 2     2     3     5
Run Code Online (Sandbox Code Playgroud)
unique(factor(60))
Run Code Online (Sandbox Code Playgroud)

因此会返回所有素数因子,"1"缺失.

 2     3     5
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个可以返回所有因子的函数(1数字本身并不重要,但它们会很好)

预期输出x = 60:

 1     2     3     4     5     6    10    12    15    20    30    60     
Run Code Online (Sandbox Code Playgroud)

我想出了那个相当庞大的解决方案,除了它可能是矢量化之外,是不是有任何优雅的解决方案?

x = 60;

P = perms(factor(x));
[n,m] = size(P);
Q = zeros(n,m);
for ii = 1:n
    for jj = 1:m
        Q(ii,jj) = prod(P(ii,1:jj));
    end
end

factors = unique(Q(:))'
Run Code Online (Sandbox Code Playgroud)

我认为,这个解决方案对于某些大数字会失败,因为perms需要一个<11的向量长度.

math matlab number-theory factorization

10
推荐指数
3
解决办法
4116
查看次数