Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6929087
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T11:16:22+00:00 2026-05-27T11:16:22+00:00

Is there a command or one-line strategy in MATLAB that will return all the

  • 0

Is there a command or one-line strategy in MATLAB that will return all the combinations of the components of n cell arrays, taken n at a time?

An example of what I want to accomplish:

A = {'a1','a2'};
B = {'b1','b2','b3'};
C = combinations(A,B)
C = {'a1','b1' ;
     'a1','b2' ;
     'a1','b3' ;
     'a2','b1' ;
     'a2','b2' ;
     ... }

The command would be able to accept an arbitrary number of arguments and the result in the example would have as many columns as there are arguments to the function. (Of course, the syntax above is just meant for illustration and any method that would generate the results whatever the format would fit the bill)

EDIT: Similar questions have been asked for matrices instead of cells, e.g. link. Many solutions point to the FEX submission allcomb, but all such solutions are just wrappers around ndgrid, which only work with doubles. Any suggestions for non numeric sets?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T11:16:22+00:00Added an answer on May 27, 2026 at 11:16 am

    Although I address this in my answer to a related/near duplicate question, I’m posting a different version of my solution here since it appears you want a generalized solution, and my other answer is specific for the case of three input sets. Here’s a function that should do what you want for any number of cell array inputs:

    function combMat = allcombs(varargin)
      sizeVec = cellfun('prodofsize', varargin);
      indices = fliplr(arrayfun(@(n) {1:n}, sizeVec));
      [indices{:}] = ndgrid(indices{:});
      combMat = cellfun(@(c,i) {reshape(c(i(:)), [], 1)}, ...
                        varargin, fliplr(indices));
      combMat = [combMat{:}];
    end
    

    And here’s how you would call it:

    >> combMat = allcombs(A, B)
    
    combMat = 
    
        'a1'    'b1'
        'a1'    'b2'
        'a1'    'b3'
        'a2'    'b1'
        'a2'    'b2'
        'a2'    'b3'
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there way to issue one command line to build a solution with all
Is there a command within the bash shell of fedora that will give me
Is there a command-line argument that would force firefox.exe to launch a new process
Is there some command line or AppleScript that I can write/run to make the
Is there a one line command in tcsh to change the extension of a
I have a program that accepts input from the command line. While all of
Is there a one-line command/script to copy one file to many files on Linux?
Is there anyway to carry out an SQL transaction in one command? eg mysql_query(
Is there a command that would allow me to check if the string xyz
Is there a command like cat in linux which can return a specified quantity

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.