Solving multiple related variables using if statement

hi everyone
i have 3 variables (Temp, Voltage, Battery) that i want to correlate
what i want is that i get errors in temp variable using limits of all the three variables
limits are
when Temp<44 or Temp>56 with Volatge between 9.8 to 13.5 and battery 1 i should get errors of my variable Temp if it is <44 or if it is >56
battery limits are 1 or 0 (ON or OFF)
kindly help me

6 Kommentare

What does I should get errors actually mean in practice?
asad ali
asad ali am 27 Jun. 2019
Bearbeitet: asad ali am 27 Jun. 2019
it means if temp is below 44 or above 56 then it is a error for me and i want to store that value of temp in another variable
Bob Thompson
Bob Thompson am 27 Jun. 2019
Bearbeitet: Bob Thompson am 27 Jun. 2019
Please copy the entire error message for us to see.
I'm going to assume that all three of your variables are a single column vector with the same number of elements. If that assumption is correct then it is a bit easier to combine down to a single large logic index.
A = [Battery, Temp, Voltage];
B = A(A(:,1)==1 & (A(:,2)>56 | A(:,2)<44) & (A(:,3)>9.8 & A(:,3)<13.5),2);
I am not asking for the condition for the error, you've already given us that. You haven't explained what I should get errors mean.
The standard meaning of I get an error is that your code aborts with a red display: Error on line xxx: error message which I assume is not what you want.
Does it mean that you want a message displayed (at the command window? in a GUI? somwhere else?) for each error value? It actually sounds like what you call I get an error is that the values are copied in another variable but it's not clear.
Detecting the errors is easy, Bob has already shown you how to do it (I'd use a table instead of a matrix, for clarity). What we don't know is what I should get errors actually mean.
i am really sorry if i offend u
i dont have the code but i m going to attach my excel file n i need code for that with the limits that i told before
We aren't offended, just trying to explain that we can't help you if we don't know what you need help with.
'i need code for that with the limits that i told before'
This is very different than what you asked us before. How were you getting errors before if you didn't have any code?
I do not have the ability to access your excel file (its is a limitation on my end), nor do I have time to write a full code for you. The logic indexing that I wrote before is still the biggest part of the 'calculations' you're looking to do. The only other thing you would need to do first is read in your file, either with xlsread, or readtable.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Guillaume
Guillaume am 27 Jun. 2019
Nobody was offended, we're just trying to understand what you want as a result, which you haven't clearly explained. As said, coding the test is trivial but we don't know what to do with the result. You still haven't told us what you want as an output. I want errors doesn't mean anything.
So I'm going to take a guess as to the desired output. If that's not what you want, then please explain.
In matlab, using if and loops should be a last resort. There are usually much simpler ways of obtaining the result you want, as is the case here:
batterytest = readtable('Test.xlsx'); %import the data in a table
batterytest.isError = batterytest.Temp < 44 | batterytest.Temp > 56 %create new table variable which is true when temperature outside [44, 56]
You can trivially add more conditions to the isError test. eg.
batterytest.isError = batterytest.Temp < 44 | batterytest.Temp > 56 | batterytest.Voltage < 9.8 | batterytest.Voltage > 13.5 | batterytest.Battery == 0

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 27 Jun. 2019

Beantwortet:

am 27 Jun. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by