[英]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.