第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

生成某些向量元素的所有可能組合(笛卡爾積)

生成某些向量元素的所有可能組合(笛卡爾積)

生成某些向量元素的所有可能組合(笛卡爾積)我想要生成給定數(shù)量的向量元素的所有可能組合。例如,對于[1 2], [1 2]和[4 5]我想要生成元素:[1 1 4; 1 1 5; 1 2 4; 1 2 5; 2 1 4; 2 1 5; 2 2 4; 2 2 5]問題是,我不知道需要計算組合的向量的數(shù)量。在這種情況下可能有3,或者可能有10,我需要一個泛化..你能幫我用MATLAB嗎?是否已經有可執(zhí)行此任務的預定義函數(shù)?
查看完整描述

3 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

試一試ALLCOMB函數(shù)在FileExchange。

如果將向量存儲在單元格數(shù)組中,則可以這樣運行:

a = {[1 2], [1 2], [4 5]};allcomb(a{:})ans =

     1     1     4
     1     1     5
     1     2     4
     1     2     5
     2     1     4
     2     1     5
     2     2     4
     2     2     5


查看完整回答
反對 回復 2019-07-05
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

使用NDGRID職能:

sets = {[1 2], [1 2], [4 5]};[x y z] = ndgrid(sets{:});cartProd = [x(:) y(:) z(:)];cartProd =
     1     1     4
     2     1     4
     1     2     4
     2     2     4
     1     1     5
     2     1     5
     1     2     5
     2     2     5

或者,如果您希望為任意數(shù)量的集合(不需要手動創(chuàng)建變量)提供通用解決方案,請使用以下函數(shù)定義:

function result = cartesianProduct(sets)
    c = cell(1, numel(sets));
    [c{:}] = ndgrid( sets{:} );
    result = cell2mat( cellfun(@(v)v(:), c, 'UniformOutput',false) );end

請注意,如果您愿意,可以對結果進行排序:

cartProd = sortrows(cartProd, 1:numel(sets));

此外,上面的代碼不檢查集合是否有重復的值(例如:{[1 1] [1 2] [4 5]})。如果想要:

sets = cellfun(@unique, sets, 'UniformOutput',false);


查看完整回答
反對 回復 2019-07-05
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

這個遲來的答案提供了兩個額外的解決方案,第二個解決方案是(我認為)并改進了Amro的答案ndgrid通過應用MATLAB強大的逗號分隔列表而不是單元數(shù)組來實現(xiàn)高性能,

  1. 如果您有神經網(wǎng)絡工具箱:使用

    combvec

  2. 如果你做了

    擁有工具箱,就像通常的情況一樣:下面是將笛卡兒積推廣到任意數(shù)量集合的另一種方法。

正如Amro在回答中所做的那樣,逗號分隔的List語法(v{:})的投入和產出ndgrid..不同之處(第四行)是它避免了cellfuncell2mat通過將逗號分隔的列表應用到cat:

N = numel(a);v = cell(N,1);[v{:}] = ndgrid(a{:});res = reshape(cat(N+1,v{:}),[],N);

使用catreshape幾乎把執(zhí)行時間縮短了一半。這一方法在我對另一個問題的回答,和路易斯·門多(Luis Mendo)更正式地.


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 810 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號