Solving Matrix Index Problem

4 Ansichten (letzte 30 Tage)
Zaki
Zaki am 30 Sep. 2013
Bearbeitet: Stephen23 am 19 Jul. 2023
is anyone here know how to solve matrix index problem in matlab?? For example the following problem :
You have a matrix for which each row is a person and the column represent the number of quarters, nickels, dimes, and pennies. What is the raw index of the person with the most money?
Note for those unfamiliar with American coins ; quarter = $ 0.25, dime = $ 0.10, nickel = $ 0.05, penny = $0.01
Example :
Input a = [1 0 0 0 ; 0 1 0 0] output b = 1
since the first person will have $ 0.25 and the second person will have only $0.05
Thanks you, i need the answer..

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 30 Sep. 2013
c=[0.25 0.1 0.05 0.01]
a = [1 0 0 0 ; 0 1 0 0]
[max_money,b]=max(sum(bsxfun(@times,c,a),2))
  1 Kommentar
Zaki
Zaki am 30 Sep. 2013
Verschoben: Stephen23 am 19 Jul. 2023
Thanks for your help

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (4)

Rahul Sharma
Rahul Sharma am 8 Feb. 2020
clear all
clc
a=randi(4,3,4)
k=[0.25 0.10 0.05 0.01];
for j=1:4
for i=1:3
a(i,j)=k(j)*a(i,j)
end
end
b=max(sum(a'))
disp(b)

Rahul Sharma
Rahul Sharma am 8 Feb. 2020
a=randi(4,3,4)
a(:,1)=0.25*a(:,1);
a(:,2)=0.10*a(:,2);
a(:,3)=0.05*a(:,3);
a(:,4)=0.01*a(:,4);
disp(a)
b = max(sum(a'));
disp(b)

Mohana Segaran
Mohana Segaran am 19 Jul. 2023
a = [1 0 0 0; 0 1 0 0; 1 1 1 0];
b = [0.25 0.1 0.05 0.01; 0.25 0.1 0.05 0.01; 0.25 0.1 0.05 0.01];
x = dot(a,b,2);
[y z]= max(x);
z

Stephen23
Stephen23 am 19 Jul. 2023
Bearbeitet: Stephen23 am 19 Jul. 2023
The simple and efficient approach is to use MTIMES:
M = [1,0,0,0;0,1,0,0;0,2,1,1] % any number of rows
M = 3×4
1 0 0 0 0 1 0 0 0 2 1 1
V = [0.25;0.1;0.05;0.01]; % one column
[~,X] = max(M*V)
X = 3

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by