matlab - 重新排列元胞数组中的元胞
问题描述
我有一个 16x1 单元阵列,我想重新排列:
{'T1' }
{'T10'}
{'T11'}
{'T12'}
{'T13'}
{'T14'}
{'T15'}
{'T16'}
{'T2' }
{'T3' }
{'T4' }
{'T5' }
{'T6' }
{'T7' }
{'T8' }
{'T9' }
我如何重新排列它以保持 16x1 结构,但排序为
{'T1' }
{'T2' }
{'T3' }
{'T4' }
{'T5' }
{'T6' }
{'T7' }
{'T8' }
{'T9' }
{'T10'}
{'T11'}
{'T12'}
{'T13'}
{'T14'}
{'T15'}
{'T16'}
谢谢你的时间。
解决方案
您可以将字符串转换为数字向量(使用sscanf)并使用已排序数字的索引重新排列原始元胞数组A
:
[~, idx] = sort(sscanf([A{:}], 'T%d', numel(A)));
B = A(idx);
推荐阅读
- android - Gradle 任务 assembleDebug 在添加 firebase_messaging 时失败,退出代码为 1
- reactjs - 条件函数中的功能组件设置useState
- keras - Keras 迁移学习问题
- java - 如何在 AndroidStudio 中模拟 android 模拟器启动?
- c# - ASP.NET 间歇性地获取编译器错误消息
- javascript - 向正浮点值添加负数的错误
- python-2.7 - 如何获取列表中值的键
- pytorch - 如何在 pytorch ignite 中使用 LBFGS 优化器?
- arrays - 如何在ruby reverse中对字母数字数组进行排序
- python - 选择行中的最低值和第二低值