回覆列表
  • 1 # tmy零

    建議樓上的回答之前自己試一試,以免誤人誤己。

    如果要提取矩陣元素,我能想出來的有三種方法,但如果要改變這些位置元素的值,我能想出來的只有一種方法。

    示例(為了與其它元素區別,賦值用NaN):

    % 生成測試資料B = magic(5);B = B(1:3, :)[r,c] = find(B>20);A = [r c]% 將B中以A作為下標的元素置為NaNB((A(:,2)-1)*size(B,1)+A(:,1)) = NaN

    輸出:

    >> B = magic(5);>> B = B(1:3, :)B = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22>> [r,c] = find(B>20);>> A = [r c]A = 2 1 1 2 3 5>> B((A(:,2)-1)*size(B,1)+A(:,1)) = NaNB = 17 NaN 1 8 15 NaN 5 7 14 16 4 6 13 20 NaN

    附:提取矩陣元素的三種方法:

    diag(B(A(:,1),A(:,2)))arrayfun(@(r,c)B(r,c),A(:,1),A(:,2))B((A(:,2)-1)*size(B,1)+A(:,1))

  • 中秋節和大豐收的關聯?
  • 給好朋友的畢業留言?