Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. close all % closes all the open figure windows
  2. clear all % removes all variables in the workspace
  3. clc % clears the command window
  4.  
  5. x = 0:0.1:100;
  6.  
  7. %Take a set of inputs from the user.
  8. caUserInput = inputdlg({'x1','x2','x3','x4','x5','x6','x7','Input'},...
  9. 'Inputs', [1 10; 1 10; 1 10; 1 10; 1 10; 1 10; 1 10; 1 10;]);
  10.  
  11. %Convert the Inputs to Double.
  12. usersValue1 = str2double(caUserInput{1});
  13. usersValue2 = str2double(caUserInput{2});
  14. usersValue3 = str2double(caUserInput{3});
  15. usersValue4 = str2double(caUserInput{4});
  16. usersValue5 = str2double(caUserInput{5});
  17. usersValue6 = str2double(caUserInput{6});
  18. usersValue7 = str2double(caUserInput{7});
  19. inputValue = str2double(caUserInput{8});
  20.  
  21. %Handling error or x3 < x2
  22. if usersValue3 < usersValue2
  23. error("Can't enter x3 less than x2")
  24. return;
  25. end
  26.  
  27. %Preparing to plot according to the assignment.
  28. a = trapmf(x,[0 0 usersValue1 usersValue3]);
  29. b = trapmf(x,[usersValue2 usersValue4 usersValue5 usersValue6]);
  30. c = trimf(x, [usersValue5 usersValue6 usersValue7]);
  31. d = trapmf(x,[usersValue6 usersValue7 100 100]);
  32. hold on;
  33. %Plot the Fuzzy Sets.
  34. plot(x,a)
  35. plot(x,b)
  36. plot(x,c, 'r')
  37. plot(x,d)
  38. xlabel('X')
  39. ylabel('Membership Value')
  40. ylim([-0.05 1.05])
  41.  
  42. % Handling all cases for the read value from the USER.
  43. if (inputValue<usersValue2)
  44. u1=evalmf(inputValue, [0 0 usersValue1 usersValue3], 'trapmf');
  45. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set A\n ',inputValue, u1)
  46.  
  47. elseif (inputValue>=usersValue2) && (inputValue <= usersValue3)
  48. u1=evalmf(inputValue, [0 0 usersValue1 usersValue3], 'trapmf');
  49. u2=evalmf(inputValue, [usersValue2 usersValue4 usersValue5 usersValue6], 'trapmf');
  50. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set A\n',inputValue, u1)
  51. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set B\n',inputValue, u2)
  52.  
  53. elseif (inputValue>usersValue3) && (inputValue < usersValue5)
  54. u1=evalmf(inputValue, [usersValue2 usersValue4 usersValue5 usersValue6], 'trapmf');
  55. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set B\n',inputValue, u1)
  56.  
  57. elseif (inputValue>=usersValue5) && (inputValue <= usersValue6)
  58. u1=evalmf(inputValue, [usersValue2 usersValue4 usersValue5 usersValue6], 'trapmf');
  59. u2=evalmf(inputValue, [usersValue5 usersValue6 usersValue7], 'trimf');
  60. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set B\n',inputValue, u1)
  61. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set C\n',inputValue, u2)
  62.  
  63. elseif inputValue == usersValue6
  64. u1=evalmf(inputValue, [usersValue2 usersValue4 usersValue5 usersValue6], 'trapmf');
  65. u2=evalmf(inputValue, [usersValue5 usersValue6 usersValue7], 'trimf');
  66. u3=evalmf(inputValue, [usersValue6 usersValue7 100 100], 'trimf');
  67. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set B\n',inputValue, u1)
  68. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set C\n',inputValue, u2)
  69. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set D\n',inputValue, u3)
  70.  
  71. elseif (inputValue>usersValue6) && (inputValue <= usersValue7)
  72. u1=evalmf(inputValue, [usersValue5 usersValue6 usersValue7], 'trimf');
  73. u2= evalmf(inputValue, [usersValue6 usersValue7 100 100], 'trapmf');
  74. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set C\n',inputValue, u1)
  75. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set D\n',inputValue, u2)
  76.  
  77. elseif inputValue >usersValue7
  78. u1=evalmf(inputValue, [usersValue6 usersValue7 100 100], 'trapmf');
  79. fprintf('The Membership value for %1.2f is %1.2f in Fuzzy set D\n',inputValue, u1)
  80.  
  81. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement