matlab - 在 MATLAB 中创建一个元素数量有限的矩阵
问题描述
我想在 MATLAB 中创建一个 12*3 矩阵,每行只有 2 个非零元素。我应该如何生成代码以获取所有可能的条件。非零元素可以取 1 到 2 之间的任何整数。
解决方案
如果您想要所有可能的组合而不重复 0 并且重复 1 和 2:
% Number of integer with repetition.
n = 2
% Generate all the possible combination of 1 and 2.
[x1,x2] = meshgrid(1:n,1:n);
M = [zeros(n^2,1),x1(:),x2(:)];
% We shift the 0 column n time.
M = cell2mat(arrayfun(@(x) circshift(M,x,2),0:n,'UniformOutput',0).');
结果:
M =
0 1 1
0 1 2
0 2 1
0 2 2
1 0 1
2 0 1
1 0 2
2 0 2
1 1 0
1 2 0
2 1 0
2 2 0
推荐阅读
- c++ - OpenFileMapping 有多贵?(内存映射文件)
- javascript - Redux Reducer 或组件的 ShouldComponentUpdate 中的深度比较?
- mysql - DBContext Hell,使用 LINQ 调用 mySQL 数据库的正确方法
- arrays - Swift:我的哈希表适用于幻数,但不适用于动态数字
- javascript - 我知道如何将 if 语句写成公式,但不是在脚本中
- django - Django电子商务项目作为初学者rabbitmq在windows 10上安装问题
- python - findall 函数的 Python 正则表达式问题
- python - 使用来自 Rekognition AI 服务的标签标记 S3 存储桶中的图像 - boto3
- python - 平滑要在 ARIMA 中使用的时间序列数据
- python - 将具有 C 依赖关系的 Python 库部署到 Heroku