MATLAB:任意数量的元胞数组的组合

2023-12-03

MATLAB 中是否有命令或单行策略可以返回以下组件的所有组合n元胞数组,采取n一次?

我想要完成的一个例子:

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

该命令将能够接受任意数量的参数,并且示例中的结果将具有与函数参数一样多的列。 (当然,上面的语法仅用于说明,任何可以生成结果的方法(无论格式如何)

编辑:对于矩阵而不是单元格提出了类似的问题,例如link。很多解决方案都指向FEX提交allcomb,但所有这些解决方案都只是 ndgrid 的包装,仅适用于双打。对于非数字集有什么建议吗?


虽然我在我的答案 to a 相关/接近重复的问题,我在这里发布了我的解决方案的不同版本,因为您似乎想要一个广义的解决方案,我的另一个答案特定于三个输入集的情况。这是一个函数,它应该对任意数量的元胞数组输入执行您想要的操作:

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

您可以这样称呼它:

>> combMat = allcombs(A, B)

combMat = 

    'a1'    'b1'
    'a1'    'b2'
    'a1'    'b3'
    'a2'    'b1'
    'a2'    'b2'
    'a2'    'b3'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB:任意数量的元胞数组的组合 的相关文章

  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • 对数据进行分布拟合 - MATLAB

    我正在尝试对从显微镜图像中收集的一些数据进行分布 我们知道 152 左右的峰值是由于泊松过程造成的 我想将分布拟合到图像中心的大密度 同时忽略高强度数据 我知道如何将正态分布拟合到数据 红色曲线 但它不能很好地捕获右侧的重尾 尽管泊松分布应
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • 检测分段常数信号中的阶跃

    我有一个分段恒定信号 如下所示 我想检测步骤转换的位置 标记为红色 我目前的做法 使用移动平均滤波器平滑信号 http www mathworks com help signal examples signal smoothing html
  • 从动态 Java 类路径导入 Java 类时出现 Matlab 编译器 MCC 错误

    我怎样才能得到mcc识别来自用户提供的 Java 库的导入 还是简单地忽略无法解析的导入 我有一个使用 Matlab 编译器构建的 Matlab 代码库 但构建正在中断 因为mcc遇到的时候会报错importMatlab 动态类路径上的 J
  • 最小化代表性整数的误差之和

    Given n integers between 0 10000 as D1 D2 Dn where there may be duplicates and n can be huge I want to find k distinct r

随机推荐

  • Prolog:在Prolog中定义逻辑运算符作为其他运算符的占位符

    我的目标是在序言中写一个小证明助手 我的第一步是定义逻辑连接词 如下所示 op 800 fx op 801 xfy op 802 xfy v op 803 xfy gt op 804 xfy lt gt op 800 xfy 最后一个运算符
  • Ember.js:具有动态绑定的 TextField

    我想将 TextField 绑定到由字符串变量指定的属性 请参阅编辑以获得更好的解释 如这个问题 不幸的是 那里给出的答案不再有效 他们在那里使用以下视图 App AutoTextField Ember ContainerView exte
  • 如何从流中删除转义序列

    有没有一种快速的方法来查找 并删除 所有转义序列来自流 字符串 希望以下语法对您有所帮助 string inputString hello world StringBuilder sb new StringBuilder string pa
  • 为 NavigableMap 编写同步线程安全包装器

    java util Collections目前提供以下实用方法来创建synchronized各种集合接口的包装器 synchronizedCollection Collection
  • javascript 中关联 []、{} 和对象之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 数组和对象有什么区别 该项目存在于数组中 但它说数组长度为 0 我对 javascript 中的对象和关联数组有点困惑 我读到了这个 question但这个问题表明两者没有太大区别 我在控制台中写了这
  • git - 当本地被删除但文件存在于远程时​​合并冲突

    我对 git 很陌生 想知道应该如何进行合并 在本地存储库中我删除了 master 分支上的几个文件 但这些文件存在于远程 master 分支中 执行 git merge 后 它会显示已发生的冲突 使用git gui显示本地文件被删除 而远
  • 错误:双端队列迭代器不可取消引用

    我正在尝试创建一个程序 将算术表达式从中缀形式转换为后缀形式 只要我不调用 infixToPostFix 函数 程序就可以正常运行 但是当我尝试运行以下代码时 出现崩溃并出现错误 双端队列迭代器不可取消引用 我找不到任何解引用运算符 所以我
  • 无法在 MacOS 上从 shm_open 写入 fd

    我正在尝试写入然后从使用打开的文件描述符中读取shm open 它在 Linux 上按我的预期工作 但在 macOS 上却不行 特别是 macOS Monterey 12 5 21G72 这是代码 include
  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • 如何使用 pyodide 在项目中导入模块而不出现错误?

    每当我在 pyodide 中导入 python 模块时 都会出现此错误 pyodide js 108 Invalid package name or URI 我不确定如何正确导入模块 我已经尝试过文档中提到的这个 pyodide loadP
  • 为什么我们不能对 float 和 double 数据类型使用按位运算符

    我是 c 的新手 在这里我试图以存储在内存中的方式打印存储在 float 和 double 变量中的值 但编译器不允许我在浮点和双精度变量上使用按位运算符 我想知道为什么我们不能使用像 和 这样的按位运算符float 和 double 数据
  • 添加到

    内的每个单词

    我想将 添加到 内的每个单词 该链接应该包含它所包围的单词 该网页有许多不同的 h3 h3 add links h3 h3 to each word h3 结果应该是这样的 h3 a href add add a a href links

  • 如何使用ffmpeg的库将YUV420P图像转换为JPEG?

    我正在尝试转换 YUV420P 图像 AV PIX FMT YUV420P 使用 ffmpeg 转换为 JPEGlibavformat and libavcodec 到目前为止 这是我的代码 AVFormatContext pFormatC
  • 重复多个函数参数

    Typescript 中有没有一种方法可以动态输入默认情况下采用 2 个参数但应该能够重复处理这些参数的函数 should be allowed myFunction paramA paramB myFunction paramA para
  • .NET - 将通用集合转换为数据表

    我正在尝试将通用集合 列表 转换为数据表 我发现以下代码可以帮助我做到这一点 Sorry about indentation public class CollectionHelper private CollectionHelper th
  • 如何在触发器函数中将 NEW.* 传递给 EXECUTE

    我有一个简单的任务是将巨大的 MD5 值插入到表 分区表 中 并创建了一个触发器和一个触发器函数来代替INSERT手术 在函数中我检查了前两个字符NEW md5以确定应插入哪个表 DECLARE tb text BEGIN IF TG OP
  • NoSuchMethodError:Lcom/google/firebase/FirebaseApp 类中没有虚拟方法 zzEq()Z;

    以下是我的应用程序上不断出现的致命错误 我正在尝试使用 Firebase 在我的应用程序上运行聊天信使功能 它正在运行 但此后它一直使应用程序完全崩溃 我对代码进行了一些编辑 希望能解决问题 但没有成功 我一直在 youtube 上关注这个
  • 如何将复数的虚部设置为零?

    我需要检查虚部是否非常小 如果是 则将其设置为零 以便消除一些浮点错误 这些错误会导致在应该为零的情况下产生非常小的非零虚部 我的代码如下 kz2 SQRT n2 2 0 PI eta 2 kxarray p 2 kz1 SQRT n1 2
  • 使用 CSS sprites 在表单元素上定位背景图像

    我正在尝试使用放大镜作为输入元素的背景 放大镜图标是 CSS 精灵的一部分 如下所示 为了定位它 我使用了这些属性 search form input type text background url images icons png no
  • MATLAB:任意数量的元胞数组的组合

    MATLAB 中是否有命令或单行策略可以返回以下组件的所有组合n元胞数组 采取n一次 我想要完成的一个例子 A a1 a2 B b1 b2 b3 C combinations A B C a1 b1 a1 b2 a1 b3 a2 b1 a2