1
考慮一維數組:y(1:20)和矩陣形式索引的集合:indx = [1,3; 7,12; 16,19]基於另一個開始和結束索引矩陣的索引矩陣
是否有一個整潔的方式來獲得單元格數組:{y(1:3),y(7:12),y(16:19)}?
它很容易完成循環,但我很好奇知道一個簡單和更簡潔的方式來傳遞索引集合到1D數組。
考慮一維數組:y(1:20)和矩陣形式索引的集合:indx = [1,3; 7,12; 16,19]基於另一個開始和結束索引矩陣的索引矩陣
是否有一個整潔的方式來獲得單元格數組:{y(1:3),y(7:12),y(16:19)}?
它很容易完成循環,但我很好奇知道一個簡單和更簡潔的方式來傳遞索引集合到1D數組。
我不認爲有使用循環的方法。您可以使用arrayfun
作爲簡寫,但:
arrayfun(@(from,to) y(from:to), indx(:,1), indx(:,2), 'uni', 0)
在你的數據結果運行這
y = (1:20)*10;
indx = [1,3;7,12;16,19];
celldisp(arrayfun(@(from,to) y(from:to), indx(:,1), indx(:,2), 'uni', 0))
ans{1} =
10 20 30
ans{2} =
70 80 90 100 110 120
ans{3} =
160 170 180 190
也許更具可讀性:'arrayfun(@(從,到)Y(來自:到),INDX (:,1),indx(:,2),'uni',0)' –
@丹,它看起來不錯。我會試一試。非常感謝! –
@ O'Neil是的,看起來更好。我會編輯它。 – Dan