MATLAB cell中所有元素都为randi(0,1) 代码
时间: 2024-09-09 15:00:48 浏览: 37
随机元素:返回从任何矩阵中随机选择的元素。-matlab开发
在MATLAB中,如果要创建一个cell数组,并且希望每个cell元素都是由`randi(0,1)`生成的随机整数,你可以使用循环来填充cell数组,但这种方法并不高效。一个更简洁的方法是利用`cellfun`函数结合匿名函数来实现。下面是一个示例代码,展示如何为cell数组中的每个元素生成一个1x1的随机整数矩阵:
```matlab
% 假设你要创建的cell数组大小为 m x n
m = 3; % cell数组的行数
n = 4; % cell数组的列数
% 使用cellfun函数创建cell数组,每个元素都是调用randi(0,1)的结果
myCell = cellfun(@(x) {randi(0,1)}, num2cell(1:m*n), 'UniformOutput', false);
% 重新整形为m x n的cell数组
myCell = reshape(myCell, m, n);
```
在这段代码中,`cellfun`函数对`num2cell(1:m*n)`生成的向量中的每个元素应用了一个匿名函数`@(x) {randi(0,1)}`,这个匿名函数对于每个输入`x`都生成一个1x1的矩阵,其中包含了`randi(0,1)`函数生成的一个随机整数。参数`'UniformOutput', false`表明我们希望输出是一个cell数组,而不是统一类型的数组。最后,我们使用`reshape`函数将这个一维cell数组重新整形为`m x n`的二维cell数组。
阅读全文