[英]swap two columns of a matrix in matlab
有沒有一種方法可以在matlab中交換兩列,從而可以在一條語句中完成? 我知道A(:,[i,j])=A(:,[j,i])
可以完成這項工作。 但我希望它的形式為swap_column(A, i, j)
。 是否有這樣的內置或僅使用內置的簡單操作?
兩種可能性:
如果您同意擁有A=swap_cols(A,i,j);
然后您只需編寫一個函數
function A = swap_cols(A,i,j) assert( i > 0 && i < size(A,2) && j > 0 && j < size(A,2) ); A(:,[ij]) = A(:,[ji]);
如果您想要一個沒有輸出參數的類似“操作符”的函數,那么您可能想要具有以下內容:
function swap_cols(Astr,i,j) m = evalin('caller', sprintf('size(%s,2);', Astr)); assert( i > 0 && i < m && j > 0 && j < m ); evalin('caller', sprintf('%s(:,[%d %d] = %s(:,[%d,%d]);', Astr, j, i, Astr, i, j) );
您使用矩陣名稱而不是矩陣本身來調用此函數:
swap_cols('A',i,j);
干杯!
置換在Matlab中完成工作
A = permute(A,[2 1]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.