# Creating values to a matrix with "if" statement

11 views (last 30 days)
Ivan Michael on 6 Nov 2019
Answered: Steven Lord on 6 Nov 2019
Hello,
I have a .csv file which includes two columns and each column has matrix 68x1.
in order to read the file I use these commands :
clc
clear
filename1= 'myfile.csv'
b=d1(:,1);
I would like to take some values using the sommand "if"
I have written :
if b>=4.5&&b<60
X=2*b+5
elseif b>=60
X=3*b-6
end
but it's no use. Could anyone help me please?

Ruger28 on 6 Nov 2019
if b<=4.5 && b<60
all values of b <= 4.5 are also <60. What is your logic here?
Ivan Michael on 6 Nov 2019
Excuse me , its b>=4.5 && b<60

Ruger28 on 6 Nov 2019
Edited: Ruger28 on 6 Nov 2019
filename1= 'myfile.csv'
b = d1(:,1);
cntr = 1; % for values outside of range since no else statement
for ii = 1:length(b)
if b(ii) >= 4.5 && b(ii) < 60
X(cntr)=2 * b(ii) + 5;
cntr = cntr + 1;
elseif b(ii) >= 60
X(cntr)=3 * b(ii) - 6;
cntr = cntr + 1;
end
end
Since your data might not fit all of the if statements, a counter of sorts is needed (at least that is how I would do it with your example).
You were not indexing the "b" vector at all. You need to loop through all of the variables in the vector, compare them in the if, and store them away if the current value meets your logic requirements with the counter (cntr).
Edit: forgot to index the "b" in the elseif