用matlab编写函数来实现triu函数的功能

img


function Test

A = [1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16];
B1 = myfunciton(A)
B2 = triu(A)

B1 = myfunciton(A,2)
B2 = triu(A)


function B = myfunciton(A,k)

if nargin == 1
    k = 0;
end

B = A;
for ii = 1:length(A)
    for jj = 1:length(A)
        if jj - ii < k
            B(ii,jj) = 0;
        end
    end
end

结果:



B1 =

     1     2     3     4
     0     6     7     8
     0     0    11    12
     0     0     0    16


B2 =

     1     2     3     4
     0     6     7     8
     0     0    11    12
     0     0     0    16


B1 =

     0     0     3     4
     0     0     0     8
     0     0     0     0
     0     0     0     0


B2 =

     0     0     3     4
     0     0     0     8
     0     0     0     0
     0     0     0     0