MATLAB 구문 - 변수 이름, 조건 및 순환 구조
개술
지난번 내용에서 우리는 MATLAB의 논리 유형(logical) 변수를 소개했는데 이런 변수는 두 가지 값만 있다.true와false이다.이번에 소개한 내용은 MATLAB의 일부 문법 구조로 우리가 가장 자주 사용하는 조건 구조와 순환 구조를 포함한다.조건 구조는 프로그램의 실행 결과에 따라 실행해야 할 명령을 선택하는 것이다.순환 구조는 프로그램에 따라 일련의 문장을 반복 집행하는 구조다.두 가지 구조는 모두 프로그램 구조의 기초 내용이다.이 장부터 모든 문제는 이론적으로 해결될 수 있다.
변수 이름
우리가 이전에 변수를 사용할 때'a=1'과 같은 방식으로 직접 값을 부여할 수 있다고 소개했고 특수한 매개 변수 값(예를 들어 pi, inf, NaN, i, j)을 변수 이름으로 사용해서는 안 된다고 특별히 언급했다.그러면 변수 이름을 사용할 때 주의해야 할 점이 도대체 어떤 것들이 있습니까?
A. 엄격하게 규정된 변수명의 격식: (반드시 할 수 없는 일을 하면 잘못 보고될 경우)MATLAB 변수 이름은 문자로 시작해야 합니다. 2.사용할 수 있는 문자는 문자, 밑줄 및 숫자 3.길이는 너무 크면 안 되며 31자가 최대 길이입니다.4. 문자는 대소문자를 구분합니다.5. 시스템에 미리 남겨진 키워드를 사용할 수 없습니다(iskeyword 명령으로 키워드 목록을 볼 수 있습니다).
B. 이상적인 변수 이름 형식: (추천하는 일) 1.MATLAB 변수 이름은 의미 있고 이해하기 쉬운 이름이 가장 좋습니다: successrate 2.변수 이름에 공백을 사용할 수 없지만, 공백 연결 단어 대신 밑줄을 사용하여 변수의 의미를 표현할 수 있습니다.3. 특별한 수요가 없을 때는 소문자(A와 a는 다른 변수)를 최대한 사용한다.사용한 변수 이름을 다시 사용하지 마십시오. 비록 나중에 이 변수를 사용할 필요가 없지만.
조건 구조
조건 구조의 특징은 프로그램이 서로 다른 조건에 따라 다른 실행 명령을 선택하는 것이다.MATLAB의 조건 구조는 두 가지가 있는데 그것이 바로if문장과switch문장이다. 그 중에서if문장은 우리가 가장 흔히 볼 수 있는 용법이다.
if문
만약 문장은 하나의 논리적 값에 따라 문장이 실행되는지 아닌지를 판단하는 문장으로 논리적 값을 판단하고 이 논리적 값이true일 때 대응하는 문장을 집행할 수 있다.(지난번 내용에서 우리가 말한 바와 같이 하나의 논리 값은 하나의 수, 하나의 논리 명제, 심지어 일련의 복합적인 논리 표현식이 여기에 적용될 수 있다.if 문장의 표준 형식은:if + 빈칸 + 논리적 조건의 시작,end 끝, 중간 줄true 조건에서 실행되는 코드입니다.
if
true ;
end
if 문장은 두 개의 키워드를 추가할 수 있습니다:else와elseif.
else는 바로if가false로 판단한 상황을 보충하는 것이다.
if
true ;
else
false ;
end
elseif는 끼워넣기용if문장에 사용되며 분기가 많을 때 구조를 최적화합니다
if 1
1 true ;
elseif 2
1 false 2 true ;
...
elseif k
false , k true ;
end
if문 인스턴스
% if
% 1
disp(' 1 ')
% if true
a = 1;
b = 2;
if b > a
disp('statement 1');
end
if b > a
disp('statement 2');
end
% 2
disp(' 2 ')
% if else
% , false 。
a = 3;
b = 2;
if b > a
disp('statement 3');
else
disp('statement 4');
end
% 3
disp(' 3 ')
% if , if if
a = 3;
if a < 2
disp('statement 5');
else %
if a < 5
disp('statement 6');
else
disp('statement 7');
end
end
% 4
disp(' 4 ')
% 3
% elseif 。
% 3
a = 3;
if a < 2
disp('statement 5');
elseif a < 5
disp('statement 6');
else
disp('statement 7');
end
% 5
disp(' 5 ')
% elseif ,
score = 67;
if score == 100
disp(' ');
elseif score > 90
disp(' ');
elseif score > 80
disp(' ');
elseif score > 70
disp(' ');
elseif score > 60
disp(' ');
else
disp(' ');
end
% , 。
테스트 결과
1
statement 1
statement 2
2
statement 4
3
statement 6
4
statement 6
5
질문
1. 우선 판단조건: 판단조건이 등식이라면 등식은'=='로 연결되어 있음을 반드시 기억해 주십시오.2. 중첩if문장을 사용할 때elseif는elseif와 구분되어야 합니다.3. 삽입if문장을 사용할 때 판단조건 간의 상호관계가 복잡하므로 꼼꼼하게 구분해야 한다.4. 2, 3이 귀찮다면 엘세이프 5를 무뇌로 사용하세요.elseif로 연결된 각 지점의 조건은 점점 느슨해지고 다지점의 조건 구조를 간소화할 수 있다.
switch 문
switch 문장은 이 변수의 가능한 값을 선택할 수 있는 변수를 제공해야 합니다.즉, 이 변수가 어떤 가능한 값인지 확인하고, 이 값을 찾으면 대응 명령을 실행합니다.특히 switch 문장은 이산값에만 효력이 발생하고(case 수량에 제한이 있음) 모든case는 반드시 달라야 한다(그렇지 않으면 첫 번째case만 실행하고 경고를 준다). 다음 사례에서if문장으로 이론적으로도 동등한 효과를 실현할 수 있지만 switch 문장의 가독성이 더욱 좋다.
switch 문 인스턴스
% switch
% :
% 1. case str
% 2. str ,
% 3. , otherwise
% 4. otherwise , switch , 。
str = ' ';
switch str
case ' '
disp(' 1');
case ' '
disp(' 2');
case ' '
disp(' 3');
case ' '
disp(' 4');
case ' '
disp(' 5');
otherwise
disp(' ');
end
테스트 결과
3
순환 구조
순환 구조도 두 가지로 나뉘는데 그것이 바로 for 순환과while 순환이다.순환 구조의 목적은 명백하다. 같은 코드를 여러 번 반복해서 실행하는 것이다.for 순환은 횟수에 따라 순환하며, 순환 횟수는 지정한 벡터 길이입니다.while 순환은 조건부 순환에 사용되며 논리 변수가true이면 반복 순환합니다.
for 순환
for 순환은 특정 횟수의 순환에 사용되며, 최대 특징은 횟수에 도달하면 멈추는 것이다.for에서 사용하는 형식은: for + 빈칸 + 인덱스 벡터로 시작하고 end 끝이며, 중간에는 순환해야 하는 코드입니다.
for =
end
for 루프 예
% 1
disp(' 1 ')
%
a = 0;
%
for index_1 = 2:10
a = a + 1;
end
disp(a);
% 2
disp(' 2 ')
% (index_2)
% index_2 。
b = 0;
%
for index_2 = 2:10
b = b + index_2;
end
disp(b);
% 3
disp(' 3 ')
% ,
c = zeros(5,5);
for index_3 = 1:5
for index_4 = 1:5
c(index_3,index_4) = sqrt(index_3^2 + index_4^2);
end
end
disp(c);
테스트 결과
1
9
2
54
3
1.4142 2.2361 3.1623 4.1231 5.0990
2.2361 2.8284 3.6056 4.4721 5.3852
3.1623 3.6056 4.2426 5.0000 5.8310
4.1231 4.4721 5.0000 5.6569 6.4031
5.0990 5.3852 5.8310 6.4031 7.0711
while 순환
while 순환은 특정 조건에서의 순환에 사용되며, 가장 큰 특징은false가 한 번만 나타나면 멈추는 것이다.while 순환에 사용되는 형식은:while + 빈칸 + 논리적 조건의 시작,end 끝, 중간 행위의 순환 코드입니다.
while
end
while 순환 예제
% 1
disp(' 1 ')
% 1+2+3+...+k>100
k = 0;
sum = 0;
while sum <= 100
sum = sum + k;
k = k + 1;
end
disp(k);
% 2
disp(' 2 ')
% exp(1), 10^-4
k = 0;
sum = 0;
while abs((sum-exp(1))/exp(1)) > 1e-4
sum = sum + 1/factorial(k);
k = k + 1;
end
disp(sum);
% 3
disp(' 3 ')
% : 。
% Ctrl + C 。
while 1
;
end
테스트 결과
1
15
2
2.7181
순환의
순환에 관해서는 또 다른 두 가지 키워드가 사용됩니다:continue와break입니다.
이 두 키워드는 작용은 비슷하지만 큰 차이가 있다.
continue: 현재 순환을 포기하고 다음 순환을 시작합니다(순환 횟수 +1)
break: 현재 이 층의 순환을 포기하고 순환이 바로 종료됩니다.
다음은 이 두 키워드의 응용을 살펴보자.
continue, break
%
% index == 3 , continue , 3 4;
% index == 5 , break , ,5 6 7 ;
for index = 1 : 7
if index == 3
continue;
end
if index == 5
break;
end
disp(index);
end
테스트 출력
1
2
4
순환에 주의해야 할 문제
1. 모든 for 순환 이론에서while 순환을 사용할 수 있다(while 순환에 인덱스를 추가하고 인덱스를 판단 조건으로 한다). 실제로 이렇게 처리하는 것은 아무런 의미가 없고 오히려 코드를 더욱 어렵게 할 수 있다. 우리는 필요에 따라 대응하는 방법을 사용하면 된다.2. for 순환은 색인 벡터를 사용해야 합니다. 가능한 한 매번 사용하는 순환 색인 변수 이름이 다르다는 것을 보증하십시오(플러그인 순환은 반드시 달라야 합니다. 그렇지 않으면 내부 순환을 식별할 수 없고 예상치 못한 오류가 발생할 수 있습니다).제어 변수 이름이 다른 장점은 한 걸음 한 걸음 순환하는 의미를 쉽게 구분하고 찾기 쉽고 바꾸기 쉽기 때문이다.3.while 순환을 사용하면 주의하지 않으면 사순환을 쓸 수 있다. 예를 들어 판단 조건이 A가 B보다 크지만 A-B는 계속 커진다.4. 복잡한 순환 구조에 대해continue와break를 사용하여 간소화할 수 있다.5. MATLAB의 경우 많은 조작이 순환을 사용하면 연산 속도를 크게 낮출 수 있다. 예를 들어 매우 큰 0 행렬 500을 만드는 것이다.×500×500, 매트릭스 조작과 내장 함수를 사용하면 효율을 크게 높일 수 있다.
소결
이 절이 지나면 이론적으로 많은 문제를 MATLAB로 해결할 수 있다.조건과 순환 구조도 많은 실제 문제에 사용될 수 있기 때문에 독자가 두 가지 구조를 파악할 때도 사용자의 두 가지 구조가 초래할 수 있는 문제에 주의해야 한다.그중 일부 문제를 주의하지 않으면 발견하기 어려운 이상을 초래하고 자신에게 적지 않은 번거로움을 가져다 줄 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.