How to replace certain array values using if, for or while?
1 view (last 30 days)
Show older comments
I have this 45x10 array with vallues between 0 and 2.5, I want to replace those values with letters if certain conditions are being atended.
The conditions are:
If the value is greater than 1.6, it gets grade E... if the value is greater than 1 and less than 1.6, it will receive a D grade... If the value is greater than 0.63 and less than 1, it receives a grade of C... If the value is greater than 0.315 and less than 0.63, it receives a grade of B...And finally, if the value is less than 0.315, it receives an A grade.
It can also be grades between 2 and 10 following the same ones I showed earlier (E=2, D=4, C=6, B=8 and A=10), but it would be better if the letters were used.
0 Comments
Accepted Answer
Arka
on 8 Mar 2023
Edited: Arka
on 8 Mar 2023
Hi,
You can use conditional indexing to achieve this.
This is the MATLAB code for the same:
scores = [0.2200 0.2946 0.3848 0.4869 0.5895 0.6857 0.7750 0.8591 0.9400 1.0192;
0.3489 0.4471 0.5495 0.6561 0.7580 0.8507 0.9363 1.0182 1.0984 1.1775;
0.3319 0.4348 0.5357 0.6343 0.7288 0.8186 0.9048 0.9892 1.0732 1.1566;
0.2766 0.3724 0.4812 0.5927 0.6978 0.7948 0.8862 0.9756 1.0657 1.1583;
0.2744 0.3508 0.4232 0.4876 0.5453 0.5983 0.6478 0.6950 0.7404 0.7843;
0.2084 0.2623 0.3129 0.3615 0.4092 0.4555 0.4989 0.5384 0.5739 0.6064;
0.2715 0.3434 0.4023 0.4543 0.5060 0.5596 0.6140 0.6672 0.7171 0.7626;
0.1909 0.2539 0.3181 0.3812 0.4419 0.4991 0.5526 0.6032 0.6521 0.7007;
0.1993 0.2523 0.3038 0.3547 0.4052 0.4549 0.5045 0.5555 0.6095 0.6667;
0.3176 0.3967 0.4696 0.5367 0.5995 0.6587 0.7161 0.7749 0.8382 0.9075;
0.2000 0.2609 0.3223 0.3814 0.4367 0.4880 0.5360 0.5830 0.6314 0.6824;
0.3302 0.4083 0.4813 0.5507 0.6168 0.6790 0.7392 0.8011 0.8678 0.9404;
0.3534 0.4301 0.5064 0.5810 0.6526 0.7233 0.7956 0.8706 0.9491 1.0313;
0.3786 0.4476 0.5026 0.5516 0.6003 0.6532 0.7126 0.7784 0.8489 0.9222;
0.3516 0.4468 0.5364 0.6223 0.7031 0.7767 0.8434 0.9051 0.9635 1.0191];
grades = zeros(size(scores));
grades(scores > 1.6) = 'E';
grades((scores > 1) & (scores <= 1.6)) = 'D';
grades((scores > 0.63) & (scores <= 1)) = 'C';
grades((scores > 0.315) & (scores <= 0.63)) = 'B';
grades(scores < 0.315) = 'A';
scores = char(grades)
Now you can access individual grades using matrix indexing. To access the grade in the ith row and jth column:
scores(i,j)
To learn more about conditional indexing, please refer to the MathWorks documentation below:
0 Comments
More Answers (0)
See Also
Categories
Find more on Downloads in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!