比方说一个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. MATLAB中的逻辑与数值数组
- 3. 从一个阵列,找了两个阵列映射,从一个数组元素
- 4. 比较matlab中逻辑矩阵的行?
- 5. Matlab中的二维逻辑矩阵
- 6. 通过逻辑阵列从矩阵中删除列:Matlab
- 7. 阵营JS - 在多个阵列的映射来得到一个数组
- 8. Matlab到Python数组的逻辑难度
- 9. 矩阵上的Matlab逻辑操作
- 10. 在Matlab中反转一个逻辑位
- 11. 映射数组的单列
- 12. Ember数据:映射阵列
- 13. 映射到一个数组
- 14. 映射数组哈希与逻辑定义运算符
- 15. 将阵列列表映射到java中的另一个阵列列表
- 16. 从Matlab中的多维数组中抽取一个逻辑变量
- 17. JPA阵列映射
- 18. 阵列不映射
- 19. 在阵列中使用逻辑子阵
- 20. 二维numpy阵列的映射函数
- 21. 映射一个简单的数组
- 22. org.hibernate.MappingException:无法找到具有逻辑名称的列OnetoOne映射
- 23. 选择/映射Powershell阵列的每个项目到一个新的阵列
- 24. NodeJS,express和mongoDB映射逻辑
- 25. R中的模糊逻辑函数Matlab中的模糊逻辑函数
- 26. matlab中的颜色映射
- 27. MyBatis的映射成多列的阵列
- 28. 对MATLAB中的一组特定行使用逻辑索引
- 29. 添加一些逻辑阵列备案
- 30. 阵列排序逻辑