比方说一个array a=[1,3,8,10,11,15,24]
和logical array b=[1,0,0,1,1,1,0,0,0,1,1,1,1,1]
,如何让[1,1,3,1,3,8,1,3,8,1,2,3,8,10]
,看到逻辑b
变为1 a
重置数组索引所以它从一开始就开始,也同样在那里逻辑就变得开始从0开始a array
并继续作为1,3,8,10..etc.
映射一个数组逻辑阵列中的Matlab的
2
A
回答
1
可以使用diff
以找到b
变化,然后用arrayfun
生成索引a
:
a=[1,3,8,10,11,15,24];
b=[1,0,0,1,1,1,0,0,0,1,1,1,1,1];
idxs = find(diff(b) ~= 0) + 1; % where b changes
startidxs = [1 idxs];
endidxs = [idxs - 1,length(b)];
% indexes for a
ia = cell2mat(arrayfun(@(x,y) 1:(y-x+1),startidxs,endidxs,'UniformOutput',0));
res = a(ia);
1
可以使用一个for循环和跟踪b
阵列的状态(0
或1
):
a = [1,3,8,10,11,15,24];
b = [1,0,0,1,1,1,0,0,0,1,1,1,1,1];
final = []
index = 0;
state = b(1);
for i = 1:numel(b)
if b(i) ~= state
state = b(i);
index = 1;
else
index = index+1;
end
final = [final, a(index) ];
end
相关问题
- 1. 在Matlab中使用逻辑阵列映射阵列
- 2. 映射一个数组的阵列
- 3. 将矩阵映射到逻辑矩阵
- 4. 阵列映射到一个数组
- 5. gnuplot中的逻辑映射
- 6. MATLAB中的逻辑与数值数组
- 7. 如何Python的数组映射到一个NumPy的阵列
- 8. 从一个阵列,找了两个阵列映射,从一个数组元素
- 9. 比较matlab中逻辑矩阵的行?
- 10. Matlab中的二维逻辑矩阵
- 11. 通过逻辑阵列从矩阵中删除列:Matlab
- 12. Biztalk映射逻辑路径
- 13. 阵营JS - 在多个阵列的映射来得到一个数组
- 14. 在MATLAB中映射矩阵的值
- 15. Matlab到Python数组的逻辑难度
- 16. matlab,单元阵列,逻辑数组索引和数组类型转换
- 17. 一个简单的澄清Informatica的映射逻辑
- 18. 矩阵上的Matlab逻辑操作
- 19. NHibernate的映射消息逻辑
- 20. PHP阵列逻辑
- 21. 映射两个数组到具有n×m个元件的一个阵列
- 22. 映射数组的单列
- 23. 具有多个阵列映射的JQuery数组
- 24. 在Matlab中反转一个逻辑位
- 25. 映射到一个数组
- 26. Ember数据:映射阵列
- 27. 映射数组哈希与逻辑定义运算符
- 28. 将阵列列表映射到java中的另一个阵列列表
- 29. 无法在Matlab中映射矩阵
- 30. 获取从数组父/子映射嵌套阵列阵列值