Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Code for a function for matrixes?

조회 수: 7 (최근 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