フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Code for a function for matrixes?

1 回表示 (過去 30 日間)
John Jamison
John Jamison 2017 年 3 月 5 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Hi,
Can I have some help for this code for the manual entering of a max function?
I was thinking of doing a if statement to keep tracking each number, but I am stuck. I currently have:
function [a b] = myMax(v)
maxHigh = 0;
currHigh = 1;
for i = 1:length(v)
if maxHigh > currHigh
currHigh = maxHigh
end
end
Thank you
  3 件のコメント
John Jamison
John Jamison 2017 年 3 月 5 日
編集済み: Image Analyst 2017 年 3 月 6 日
function [a b] = myMax(v)
maxHigh = 0;
currHigh = 1;
for i = 1:length(v)
if maxHigh > currHigh
currHigh = maxHigh
end
end
Rena Berman
Rena Berman 2017 年 3 月 7 日
(Answers Dev) Restored edit

回答 (1 件)

Image Analyst
Image Analyst 2017 年 3 月 6 日
John, your code is very close but you need to initialize the variables and store the row the max shows up in. I renamed some variables and saved the row. Here's a little more to get you going:
function [columnMaxes, rowsOfMax] = myMax(v)
[rows, columns] = size(v);
columnMaxes = -inf * ones(1, columns);
rowsOfMax = zeros(1, columns);
for col = 1 : columns
for row = 1 : rows
thisValue = v(row, col);
if thisValue > columnMaxes(col)
columnMaxes(col) = thisValue;
rowsOfMax(col) = row;
end
end
end
end
See that it works for both 1-D arrays (both column vectors and row vectors), and 2-D arrays. You might put in a check to see if it's a 3-D array and popup an error message with sprintf(), uiwait(), and errordlg().
  19 件のコメント
John Jamison
John Jamison 2017 年 3 月 8 日
@Image Analyst
Walter Roberson
Walter Roberson 2017 年 3 月 8 日
編集済み: Walter Roberson 2017 年 3 月 8 日
As your first line inside the function,
if isvector(v); v = v(:); end

この質問は閉じられています。

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by