比方說一個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. 陣列排序邏輯