比方說一個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. 獲取從數組父/子映射嵌套陣列陣列值