-3

こんにちは、ユーザーが行列の次元を入力し、指定された次元のランダムな行列を受け取り、for ループを使用して各行と列の最大値を返すプログラムを書いています。

これは、各行の最大値を見つけるために使用した関数のコードです

function outmax = mymaxq (q)
outmax = q (1);
for i = 2:length (q)
    if q(i) > outmax
        outmax = q(i);
    end
end
end

各列の最大値を見つける関数のコード:

function outmax2 = mymaxcol(z)
outmax2 = z(1);
for i = 2: length (y)
    if z(i) > outmax2
        outmax2 = z(i);
    end
end
end

スクリプト全体のコード:

rows = input('Enter the number of rows: ');
columns = input ('Enter the number of columns: ');
mat = round(rand(rows , columns)*(30-1)+1)
[r,c] =size (mat);
for x = 1:r
    q = mat(x,:);
    outmax = mymaxq(q);
    fprintf ('The max of row %d is %d.\n',x,outmax)
end
for y = 1:c
    z = mat(:,y);
    outmax2 = mymaxcol(z);
    fprintf ('The max of column %d is %d.\n',y,outmax2)
end

ただし、列機能は正しく機能していません。私の推測では、列ベクトルの長さが 1 であるためです。関数が適切に機能するようにするにはどうすればよいでしょうか。長さ以外の使い方の提案は?

4

1 に答える 1