gpt4 book ai didi

matlab - 在matlab中交换矩阵的两列

转载 作者:行者123 更新时间:2023-12-02 22:18:38 29 4
gpt4 key购买 nike

有没有办法在 matlab 中交换两列,以便可以在一条语句中完成?我知道 A(:,[i,j])=A(:,[j,i]) 可以完成这项工作。但我希望它采用 swap_column(A, i, j) 形式。是否有这样的内置或仅使用内置的简单操作?

最佳答案

两种可能性:

  1. 如果您同意 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(:,[i j]) = A(:,[j i]);

  2. 如果你想要一个没有输出参数的类似“操作符”的函数,那么你可能想要这样的东西:

    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 - 在matlab中交换矩阵的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087602/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com