0
有沒有方法向量化下面的代碼?我想將histcounts函數應用於3D矩陣的每個切片。MATLAB:三維矩陣的每個切片的總計數
mat = rand(100,1,5);
[~,~,numRuns] = size(mat);
for i = 1 : numRuns
[n(:,:,i), edges(:,:,i)] = histcounts(mat(:,:,i));
end
有沒有方法向量化下面的代碼?我想將histcounts函數應用於3D矩陣的每個切片。MATLAB:三維矩陣的每個切片的總計數
mat = rand(100,1,5);
[~,~,numRuns] = size(mat);
for i = 1 : numRuns
[n(:,:,i), edges(:,:,i)] = histcounts(mat(:,:,i));
end
如果您確實需要爲每次運行單獨的直方圖,那麼就像這樣。爲什麼你甚至想要矢量化它?這很容易閱讀,這很重要。 (您可以用cellfun
對其進行矢量化處理,但在這種情況下,它會變得複雜,甚至不會更快)。如果要提高計算速度,請使用parfor
而不是for
。
但也許你想要一個所有數據的直方圖。然後,只需做
[N,edges] = histcounts(mat);
和你有你的整體直方圖。