簡體   English   中英

Matlab:從一組值中為數組中的每一列查找最小值

[英]Matlab: Find minimum value from a set of values for each column in an array

我有一個二維數組A=zeros(1000,1024) 我想迭代計算第i行的值(i = 1-999)與第1000行的值之間的差。

現在,我想遍歷1-999行,計算當前行與第100行的差,並將其存儲在單獨的數據結構中( B=zeros(999,1024) )。 之后,我使用另一個for循環計算每個列的最小值,該循環遍歷B的列。

您知道更有效,更快捷的方法嗎?

如果只希望每列的最小值,那么可以通過在最后進行減法來節省許多操作:

min(A(1:end-1,:),[],1) - A(end,:)

嘗試這個 -

min(bsxfun(@minus,A(1:999,:),A(1000,:)),[],1)

看來您想從最后一行中減去,因此可以將其設為通用-

min(bsxfun(@minus,A(1:end-1,:),A(end,:)),[],1)

這是bsxfun的經典用例:

M = rand(1000,1024);
V = M(end,:);

MminusV = bsxfun(@minus, M(1:end-1,:), V);

min(MminusV)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM