こんにちは、ユーザーが行列の次元を入力し、指定された次元のランダムな行列を受け取り、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 であるためです。関数が適切に機能するようにするにはどうすればよいでしょうか。長さ以外の使い方の提案は?