簡體   English   中英

MATLAB 中某些數字的所有可能組合的矩陣:如何在維度上通用

[英]Matrix of all possible combinations of some numbers in MATLAB: how to be general on dimensions

考慮一個大小為L x 1的 MATLAB 單元U ,其中每個子單元是一個G x K矩陣,報告一些數字。 我想構建一個大小為G x 1的單元格T ,其中每個子單元格g是一個K^L x L L ,報告來自U{1}(g,:)U{2}(g,:) , ..., U{L}(g,:) 例如,考慮

L=3;
G=5;
K=4;
%U=cell(L,1);
U{1}=randn(5,4);
U{2}=randn(5,4);
U{3}=randn(5,4);
T=cell(G,1);
for g=1:G
    U1=U{1}(g,:);
    U2=U{2}(g,:);
    U3=U{3}(g,:);
    [ca, cb, cc] = ndgrid(U1, U2, U3);
    T{g} = [ca(:), cb(:), cc(:)]; 
end

如何將此代碼推廣到任何L

我想我可以使用和修改這個問題的答案,但我正在努力設置輸入變量。

我稍微調整了另一個主題的解決方案:

L=3;
G=5;
K=4;
U=cell(L,1);
U = cellfun(@(x) {randn(G,K)}, U);
T=cell(G,1);
for g=1:G
    Cin = cellfun(@(x) {x(g,:)}, U);
    Cout = cell(L,1);
    [Cout{:}] = ndgrid(Cin{:});
    Cout = cellfun(@(x) {x(:)}, Cout);
    T{g} = [Cout{:}];
end

這樣做是你想要的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM