how to compare the elements of a matrix and fill another

Technical Source
3 min readAug 12, 2023

--

how to compare the elements of a matrix and fill another matrix with the elements of a vector

what I am trying to do is fill a matrix of zeros with the elements of a vector, but first I have to compare with a matrix of 1 and 0 to know what value should go

these vectors represent the availability and unavailability of a group of components of an electrical system, if the element of the matrix is equal to 1 it takes the value of availability, if it is zero it must take the value of unavailability

the code that I propose only fills the first column of the matrix of zeros with the corresponding elements of a and b, but I cannot get the other columns to be filled with the corresponding elements

n=5;
a=[0.9 0.8 0.7 0.6 0.5];
b=[ 0.1 0.2 0.3 0.4 0.5];
t=ff2n(n);
t1=zeros(size(t));
for i = 1:length(t)

if t(i)==1
t1(i) =a(1,1);

else
t1(i) = b(1,1);

end

end
disp(t1)

Answer:

Since your t matrix is full of 0 and 1 you can take advantage of that and just do this

a = [0.9 0.8 0.7 0.6 0.5];
b = [0.1 0.2 0.3 0.4 0.5];
t = ff2n(n);
t1 = t.*a
t1 =
         0         0         0         0         0
0 0 0 0 0.5000
0 0 0 0.6000 0
0 0 0 0.6000 0.5000
0 0 0.7000 0 0
0 0 0.7000 0 0.5000
0 0 0.7000 0.6000 0
0 0 0.7000 0.6000 0.5000
0 0.8000 0 0 0
0 0.8000 0 0 0.5000
0 0.8000 0 0.6000 0
0 0.8000 0 0.6000 0.5000
0 0.8000 0.7000 0 0
0 0.8000 0.7000 0 0.5000
0 0.8000 0.7000 0.6000 0
0 0.8000 0.7000 0.6000 0.5000
0.9000 0 0 0 0
0.9000 0 0 0 0.5000
0.9000 0 0 0.6000 0
0.9000 0 0 0.6000 0.5000
0.9000 0 0.7000 0 0
0.9000 0 0.7000 0 0.5000
0.9000 0 0.7000 0.6000 0
0.9000 0 0.7000 0.6000 0.5000
0.9000 0.8000 0 0 0
0.9000 0.8000 0 0 0.5000
0.9000 0.8000 0 0.6000 0
0.9000 0.8000 0 0.6000 0.5000
0.9000 0.8000 0.7000 0 0
0.9000 0.8000 0.7000 0 0.5000
0.9000 0.8000 0.7000 0.6000 0
0.9000 0.8000 0.7000 0.6000 0.5000
t2 = not(t.*a).*b
t2 =
0.1000 0.2000 0.3000 0.4000 0.5000
0.1000 0.2000 0.3000 0.4000 0
0.1000 0.2000 0.3000 0 0.5000
0.1000 0.2000 0.3000 0 0
0.1000 0.2000 0 0.4000 0.5000
0.1000 0.2000 0 0.4000 0
0.1000 0.2000 0 0 0.5000
0.1000 0.2000 0 0 0
0.1000 0 0.3000 0.4000 0.5000
0.1000 0 0.3000 0.4000 0
0.1000 0 0.3000 0 0.5000
0.1000 0 0.3000 0 0
0.1000 0 0 0.4000 0.5000
0.1000 0 0 0.4000 0
0.1000 0 0 0 0.5000
0.1000 0 0 0 0
0 0.2000 0.3000 0.4000 0.5000
0 0.2000 0.3000 0.4000 0
0 0.2000 0.3000 0 0.5000
0 0.2000 0.3000 0 0
0 0.2000 0 0.4000 0.5000
0 0.2000 0 0.4000 0
0 0.2000 0 0 0.5000
0 0.2000 0 0 0
0 0 0.3000 0.4000 0.5000
0 0 0.3000 0.4000 0
0 0 0.3000 0 0.5000
0 0 0.3000 0 0
0 0 0 0.4000 0.5000
0 0 0 0.4000 0
0 0 0 0 0.5000
0 0 0 0 0
t1+t2ans = 0.1000 0.2000 0.3000 0.4000 0.5000
0.1000 0.2000 0.3000 0.4000 0.5000
0.1000 0.2000 0.3000 0.6000 0.5000
0.1000 0.2000 0.3000 0.6000 0.5000
0.1000 0.2000 0.7000 0.4000 0.5000
0.1000 0.2000 0.7000 0.4000 0.5000
0.1000 0.2000 0.7000 0.6000 0.5000
0.1000 0.2000 0.7000 0.6000 0.5000
0.1000 0.8000 0.3000 0.4000 0.5000
0.1000 0.8000 0.3000 0.4000 0.5000
0.1000 0.8000 0.3000 0.6000 0.5000
0.1000 0.8000 0.3000 0.6000 0.5000
0.1000 0.8000 0.7000 0.4000 0.5000
0.1000 0.8000 0.7000 0.4000 0.5000
0.1000 0.8000 0.7000 0.6000 0.5000
0.1000 0.8000 0.7000 0.6000 0.5000
0.9000 0.2000 0.3000 0.4000 0.5000
0.9000 0.2000 0.3000 0.4000 0.5000
0.9000 0.2000 0.3000 0.6000 0.5000
0.9000 0.2000 0.3000 0.6000 0.5000
0.9000 0.2000 0.7000 0.4000 0.5000
0.9000 0.2000 0.7000 0.4000 0.5000
0.9000 0.2000 0.7000 0.6000 0.5000
0.9000 0.2000 0.7000 0.6000 0.5000
0.9000 0.8000 0.3000 0.4000 0.5000
0.9000 0.8000 0.3000 0.4000 0.5000
0.9000 0.8000 0.3000 0.6000 0.5000
0.9000 0.8000 0.3000 0.6000 0.5000
0.9000 0.8000 0.7000 0.4000 0.5000
0.9000 0.8000 0.7000 0.4000 0.5000
0.9000 0.8000 0.7000 0.6000 0.5000
0.9000 0.8000 0.7000 0.6000 0.5000

for other assignment help please visit this site:

  1. matlabhelpers
  2. matlabsolutions
  3. programmingshark

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet