如何将Matlab中for循环存储多矩阵的代码转换为Python实现
Matlab代码转Python等效实现
你给出的Matlab代码核心是预分配cell数组存储10个10×10的随机矩阵,Python中可以用列表搭配numpy科学计算库实现相同功能,具体如下:
前置依赖
需要先安装numpy库,可通过pip install numpy命令安装。
等效代码(Python习惯写法,动态追加)
import numpy as np n = 10 T = [] for k in range(1, n+1): # 对应Matlab的20*k + rand(10),生成10×10随机矩阵 T.append(20 * k + np.random.rand(10, 10))
等效代码(和Matlab预分配逻辑完全对齐)
如果你需要和原Matlab代码一样提前分配存储空间,可使用如下写法:
import numpy as np n = 10 # 预分配长度为10的列表,对应Matlab的cell(1, n) T = [None] * n for idx in range(n): # Python列表索引从0开始,idx+1对应原Matlab的k值 T[idx] = 20 * (idx + 1) + np.random.rand(10, 10)
注意事项
- Matlab中取第k个矩阵的写法是
T{1,k},Python中对应写法为T[k-1] - 若不需要做数值计算只需要嵌套列表结构,也可以用Python原生循环生成随机数,搭配numpy是性能最优的方案
内容的提问来源于stack exchange,提问作者MMKshawn
相关产品推荐
相关产品推荐

