matlab数组动态显⽰,Python,创建类似Matlab的动态单元数
组
如果我定义CELLin = {[1,2],[1,2,3];[1,2,3],[1,2,3,4]}
⽤⼋度⾳阶运⾏你的代码
^{pr2}$
CELLin是⼀个nx2单元格,NUM给出了扁平布局(n*2⾏)中单元格元素的某种平均长度。jALL只是⼀个索引(可能是{})的索引。在
给定CELLin元素的可变长度,最简单的Python翻译使⽤列表,⽽不是numpy。列表还允许我在不预先分配的情况下累积结果。例
如,MATLAB代码的⾸字母jALL为(0,0),但它会随着r赋值⽽增长。在# nested list; best equivalent to CELL
CELLin = [[[1,2],[1,2,3]],[[1,2,3],[1,2,3,4]]]
NUM = []
jALL = []
r = 0
for k, v in enumerate(CELLin): # iterate of 1st level
r += 1
matlab数组赋值NUM.append( (len(v[0])-1)/2.)
jALL.append([r,1])
r += 1
NUM.append( (len(v[1])-1)/2.)
jALL.append([r,2])
print(CELLin)
print(NUM)
print(jALL)
⽣产1033:~/mypy$ python stack43742171.py
[[[1, 2], [1, 2, 3]], [[1, 2, 3], [1, 2, 3, 4]]]
[0.5, 1.0, 1.0, 1.5]
[[1, 1], [2, 2], [3, 1], [4, 2]]
如果我加上CELLin = np.array(CELLin)
它变成⼀个对象数据类型数组(2d和list元素)array([[[1, 2], [1, 2, 3]],
[[1, 2, 3], [1, 2, 3, 4]]], dtype=object)
其余代码运⾏相同
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论