Solving Matrix Index Problem

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..

 Risposta accettata

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))

Più risposte (4)

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)
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 il 19 Lug 2023

0 voti

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 il 19 Lug 2023
Modificato: Stephen23 il 19 Lug 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

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by