기사에서 Matlab을 참조하는 방법. Matlab 기초. 복소수를 사용한 기본 연산

고등 수학을 다루는 사람들은 때때로 자신이 다루어야 하는 수학적인 "괴물"이 무엇인지 잘 알고 있습니다. 예를 들어, 거대한 삼중 적분을 계산하는 데 정말 많은 시간, 정신적 에너지, 회복되지 않는 신경 세포를 소비할 수 있습니다. 물론 적분에 도전하고 취하는 것은 매우 흥미롭습니다. 하지만 그 대신 적분이 당신을 데려가겠다고 위협한다면 어떨까요? 아니면 더 나쁜 것은 삼차 삼항식이 통제를 벗어나 광포해졌습니까? 당신은 적에게 이것을 원하지 않을 것입니다.


이전에는 두 가지 옵션만 있었습니다. 모든 것을 포기하고 산책을 가거나 적분과 함께 여러 시간 동안 전투에 참여하는 것입니다. 글쎄, 어떤 사람들에게는 많은 시간이 걸렸고 다른 사람들에게는 몇 분이 걸렸습니다. 누가 어떻게 연구했는지. 하지만 그게 요점이 아닙니다. 20세기와 거침없이 발전하는 진보는 우리에게 세 번째 길을 제시합니다. 즉, 가장 복잡한 적분을 “빠르게” 받아들일 수 있게 해줍니다. 모든 종류의 방정식을 풀고, 3차 쌍곡선 형태로 함수 그래프를 그리는 경우에도 마찬가지입니다.

학생들 사이에서 이렇게 특별하지만 주기적으로 발생하는 상황에는 강력한 수학적 무기가 있습니다. 아직 모르는 분들을 위해 MATLAB 소프트웨어 패키지를 만나보세요.

Matlab은 방정식을 풀고 근사한 후 함수 그래프를 작성합니다. 이것이 무엇을 의미하는지 이해합니까, 친구?

이는 현재 사용 가능한 가장 강력한 데이터 처리 패키지 중 하나임을 의미합니다. 이름은 다음을 의미합니다. 행렬실혐실. 매트릭스 연구실,러시아어라면 . 이 프로그램의 기능은 수학의 거의 모든 영역을 포괄합니다. 따라서 Matlab을 사용하면 다음을 수행할 수 있습니다.

  • 행렬에 대한 모든 종류의 연산을 수행하고, 선형 방정식을 풀고, 벡터를 사용하여 작업합니다.
  • 모든 차수의 다항식의 근을 계산하고, 다항식에 대한 연산을 수행하고, 곡선을 미분, 외삽 및 보간하고, 모든 함수의 그래프를 작성합니다.
  • 디지털 필터링, 통계 회귀를 사용하여 데이터의 통계 분석을 수행합니다.
  • 미분 방정식을 푼다. 경계 조건이 있는 부분 도함수, 선형, 비선형에서는 중요하지 않습니다. Matlab은 모든 것을 해결합니다.
  • 정수 산술 연산을 수행합니다.

이 모든 것 외에도 MATLAB의 기능을 사용하면 3차원 그래프 구성, 애니메이션 비디오 생성 등 데이터를 시각화할 수 있습니다.

물론 Matlab에 대한 설명은 완전하지 않습니다. 제조업체가 제공하는 성능과 기능 외에도 단순히 매니아나 다른 회사에서 작성한 Matlab 도구가 엄청나게 많습니다.

프로그래밍 언어로서의 MATLAB


프로그램을 작업할 때 직접 사용하는 프로그래밍 언어이기도 합니다. 자세히 설명하지는 않겠습니다. MATLAB으로 작성된 프로그램에는 함수와 스크립트라는 두 가지 유형이 있다고 가정하겠습니다.


프로그램의 주요 작업 파일은 M 파일입니다. 이것은 끝없는 텍스트 파일이며 그 안에 계산이 직접 프로그래밍되어 있습니다. 그런데 이 단어에 겁먹지 마세요. MATLAB에서 작업하기 위해 전문 프로그래머가 될 필요는 없습니다.

M-파일은 다음과 같이 구분됩니다.

  • M-시나리오. M 스크립트는 가장 간단한 유형의 M 파일이며 입력 또는 출력 인수가 없습니다. 이 파일은 반복 계산을 자동화하는 데 사용됩니다.
  • M-기능. M-함수는 입력 및 출력 인수를 허용하는 M-파일입니다.

MATLAB에서 작업이 어떻게 수행되는지 명확하게 보여주기 위해 Matlab에서 함수를 생성하는 예를 아래에 제공합니다. 이 함수는 벡터의 평균값을 계산합니다.
에프 함수 y = 평균(x)
% AVERAGE 벡터 요소의 평균 값입니다.
% AVERAGE(X), 여기서 X는 벡터입니다. 벡터 요소의 평균을 계산합니다.
% 입력 인수가 벡터가 아닌 경우 오류가 생성됩니다.
= 크기(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error("입력 배열은 벡터여야 합니다.')

y = 합(x)/길이(x); % 실제 계산

함수 정의 라인은 MATLAB에 파일이 M 함수임을 알리고 입력 인수 목록도 지정합니다. 따라서 평균 함수의 정의 라인은 다음과 같습니다.
함수 y = 평균(x)
어디:

  1. function - M-함수를 정의하는 키워드입니다.
  2. y - 출력 인수;
  3. 평균 - 함수 이름;
  4. x는 입력 인수입니다.

따라서 Matlab에서 함수를 작성하려면 MATLAB 시스템의 모든 함수에 아래와 유사한 함수 정의 라인이 포함되어 있다는 점을 기억해야 합니다.

물론 이러한 강력한 패키지는 학생들의 삶을 더 편하게 만들기 위해서만 필요한 것은 아닙니다. 현재 MATLAB은 많은 과학 및 엔지니어링 분야의 전문가들 사이에서 매우 인기가 있습니다. 반면, 대규모 행렬을 사용할 수 있는 기능 덕분에 MATLAB은 재무 분석가에게 없어서는 안 될 도구가 되었으며, 이를 통해 잘 알려진 Excel보다 훨씬 더 많은 문제를 해결할 수 있습니다. 이에 대한 자세한 내용은 리뷰 기사에서 확인할 수 있습니다.

MATLAB 작업의 단점


MATLAB을 사용하면서 어려운 점은 무엇입니까? 아마도 한 가지 어려움이 있을 것입니다. 그러나 근본적이다. MATLAB의 기능을 완전히 활용하고 눈앞에 발생하는 문제를 쉽게 해결하려면 열심히 노력하고 먼저 Matlab 자체(파일 생성 방법, 함수 생성 방법 등)를 이해해야 합니다. 권력과 광범위한 기회에는 희생이 필요하기 때문에 이것은 그렇게 간단하지 않습니다.

우리가 원한다고 해도 MATLAB이 다음과 같다고 말할 수는 없습니다.간단한 프로그램. 그럼에도 불구하고 우리는 위의 모든 내용이 개발을 위한 충분한 논거가 되기를 바랍니다.

그리고 마지막으로. 인생의 모든 것이 왜 이런 식으로 진행되고 그렇지 않은지 모르겠다면 Matlab에 물어보세요. 명령줄에 "이유"를 입력하면 됩니다. 그는 대답할 것이다. 시도 해봐!

이제 Matlab의 기능을 알게 되었습니다. 교육 분야에서 MATLAB은 수치법과 선형 대수학을 가르치는 데 자주 사용됩니다. 많은 학생들은 실험실 작업 중에 수행된 실험 결과를 처리할 때 그것 없이는 할 수 없습니다. MATLAB 작업의 기본 사항을 빠르고 효율적으로 익히려면 언제든지 당사에 문의하세요. 저희는 언제든지 귀하의 질문에 답변해 드릴 준비가 되어 있습니다.

). 계량화학에 사용되는 범용 도구 중에서 MatLab 패키지는 특별한 위치를 차지합니다. 그의 인기는 유난히 높다. 이는 MatLab이 다차원 데이터 처리에 강력하고 다재다능하기 때문입니다. 패키지의 구조 자체가 행렬 계산을 수행하는 데 편리한 도구입니다. MatLab을 사용하여 연구할 수 있는 문제의 범위에는 행렬 분석, 신호 및 이미지 처리, 신경망 등이 포함됩니다. MatLab은 고급 사용자가 프로그래밍된 알고리즘을 이해할 수 있는 고급 오픈 소스 언어입니다. 간단한 내장 프로그래밍 언어를 사용하면 자신만의 알고리즘을 쉽게 만들 수 있습니다. 수년 동안 MatLab을 사용하면서 수많은 함수와 ToolBox(특수 도구 패키지)가 만들어졌습니다. 가장 널리 사용되는 패키지는 EigenVector Research, Inc.의 PLS ToolBox 패키지입니다.

1. 기본정보

1.1. MatLab 작업 환경

프로그램을 시작하려면 아이콘을 두 번 클릭하십시오. 그림에 표시된 작업 환경이 눈앞에 열립니다.

근무 환경 매트랩 6.x이전 버전의 작업 공간과 약간 다르지만 많은 지원 요소에 액세스하기 위한 더 편리한 인터페이스를 가지고 있습니다.

근무 환경 매트랩 6.x다음 요소가 포함되어 있습니다.

    버튼과 드롭다운 목록이 있는 도구 모음;

    실행 패드 탭이 있는 창 및 작업공간, 다양한 ToolBox 모듈과 워크벤치 콘텐츠에 액세스할 수 있습니다.

    탭 창 명령 기록그리고 현재 디렉토리, 이전에 입력한 명령을 보고 다시 호출하고 현재 디렉토리를 설정하기 위한 것입니다.

    "입력" 프롬프트와 깜박이는 수직 커서가 포함된 명령 창;

    상태 표시 줄.

작업 환경에 있는 경우 매트랩 6.x그림에 표시된 일부 창이 누락된 경우 보기 메뉴에서 해당 항목을 선택해야 합니다. 명령 창, 명령 기록 , 현재 디렉터리 , 작업 공간 , 실행 패드 .

명령은 명령 창에 입력해야 합니다. 명령줄 프롬프트를 나타내는 » 기호는 입력할 필요가 없습니다. 작업 영역을 보려면 스크롤 막대를 사용하거나 Home, End 키를 사용하여 왼쪽 또는 오른쪽으로 이동하고 PageUp, PageDown을 사용하여 위 또는 아래로 이동하는 것이 편리합니다. 갑자기 명령창의 작업 영역을 이리저리 이동한 후 커서가 깜박이는 명령줄이 사라지면 Enter 키를 누르시면 됩니다.

MatLab이 해당 명령을 실행하거나 표현식을 평가하려면 명령이나 표현식 입력이 Enter 키를 눌러 끝나야 한다는 점을 기억하는 것이 중요합니다.

1.2. 간단한 계산

명령줄에 1+2를 입력하고 Enter를 누릅니다. 결과적으로 MatLab 명령 창에는 다음이 표시됩니다.

쌀. 2 주성분 분석의 그래픽 표현

MatLab 프로그램은 무엇을 했나요? 먼저 합계 1+2를 계산한 다음 그 결과를 특수 변수 ans에 기록하고 그 값인 3을 명령 창에 표시했습니다. 응답 아래에는 MatLab이 추가 계산을 할 준비가 되었음을 나타내는 깜박이는 커서가 있는 명령줄이 있습니다. 명령줄에 새 표현식을 입력하고 그 의미를 찾을 수 있습니다. 예를 들어 (1+2)/4.5 계산과 같이 이전 표현식으로 작업을 계속해야 하는 경우 가장 쉬운 방법은 ans 변수에 저장된 기존 결과를 사용하는 것입니다. ans/4.5(소수점 입력 시 점이 사용됨)를 입력하고 입력하다, 그것은 밝혀

쌀. 3 주성분 분석의 그래픽 표현

1.3. 에코 명령

MatLab에서 각 명령을 실행하면 에코가 발생합니다. 위의 예에서 답은 ans = 0.6667입니다. 에코로 인해 프로그램 작동을 인식하기 어려워지면 프로그램이 꺼질 수 있는 경우가 많습니다. 이렇게 하려면 명령이 세미콜론으로 끝나야 합니다. 예를 들어

쌀. 4 ScoresPCA 함수 입력 예

1.4. 작업 환경 보존. MAT 파일

모든 변수 값을 저장하는 가장 쉬운 방법은 파일 메뉴에서 작업 공간을 다른 이름으로 저장 옵션을 사용하는 것입니다. 그러면 디렉터리와 파일 이름을 지정해야 하는 작업 공간 변수 저장 대화 상자가 열립니다. 기본적으로 기본 MatLab 디렉터리의 작업 하위 디렉터리에 파일을 저장하는 것이 좋습니다. 프로그램은 작업 결과를 확장자가 mat.인 파일에 저장합니다. 이제 MatLab을 닫을 수 있습니다. 다음 작업 세션에서 변수 값을 복원하려면 파일 메뉴의 열기 하위 항목을 사용하여 저장된 파일을 열어야 합니다. 이제 마지막 세션에서 정의한 모든 변수를 다시 사용할 수 있습니다. 새로 입력한 명령에 사용할 수 있습니다.

1.5. 잡지

MatLab에는 실행 가능한 명령과 결과를 텍스트 파일에 기록(작업 로그 유지)한 다음 텍스트 편집기에서 읽거나 인쇄할 수 있는 기능이 있습니다. 로깅을 시작하려면 다음 명령을 사용하십시오. 다이어리. 명령 인수로 다이어리작업 로그가 저장될 파일의 ​​이름을 지정해야 합니다. 추가로 입력한 명령과 해당 실행 결과는 예를 들어 일련의 명령과 같이 이 파일에 기록됩니다.

다음 작업을 수행합니다.

    examplel-1.txt 파일의 로그를 엽니다.

    계산을 수행합니다.

    모든 변수를 MAT 파일 work-1.mat 에 저장합니다.

    MatLab 루트 디렉터리의 작업 하위 디렉터리에 있는 examplel-1.txt 파일에 로그를 저장하고 MatLab을 닫습니다.

일부 텍스트 편집기에서 examplel-1.txt 파일의 내용을 살펴보세요. 파일에는 다음 텍스트가 포함됩니다.

a1=3;
a2=2.5;
a3=a1+a2

작품 저장-1
그만두다

1.6. 도움말 시스템

MatLab 도움말 창은 도움말 메뉴에서 도움말 창 옵션을 선택하거나 도구 모음에서 질문 버튼을 클릭하면 나타납니다. 명령을 입력하여 동일한 작업을 수행할 수 있습니다. 헬프윈. 개별 항목에 대한 도움말 창을 표시하려면 다음을 입력하십시오. 헬프윈 주제. 도움말 창은 도움말 명령과 동일한 정보를 제공하지만 창 인터페이스는 다른 도움말 항목에 대한 보다 편리한 링크를 제공합니다. Math Works 웹 페이지의 주소를 이용하면 해당 회사의 서버에 접속하여 관심 있는 이슈에 대한 최신 정보를 얻을 수 있습니다. 기술 지원 페이지에서 새로운 소프트웨어 제품을 확인하거나 문제에 대한 답변을 찾을 수 있습니다.

2. 행렬

2.1. 스칼라, 벡터 및 행렬

MatLab에서는 스칼라, 벡터 및 행렬을 사용할 수 있습니다. 스칼라를 입력하려면 해당 값을 일부 변수에 할당하는 것으로 충분합니다. 예를 들어

MatLab은 대문자와 대문자를 구별하므로 p와 P는 다른 변수입니다. 배열(벡터 또는 행렬)을 입력하려면 해당 요소를 대괄호로 묶습니다. 따라서 1x3 행 벡터를 입력하려면 다음 명령을 사용하십시오. 여기서 행 요소는 공백이나 쉼표로 구분됩니다.

열 벡터를 입력할 때 요소는 세미콜론으로 구분됩니다. 예를 들어,

명령줄에서 직접 작은 행렬을 입력하는 것이 편리합니다. 입력에서 행렬은 열 벡터로 간주될 수 있으며, 각 요소는 행 벡터입니다.

또는 행렬은 각 요소가 열 벡터인 행 벡터로 처리될 수 있습니다.

2.2. 요소에 접근하기

행렬 요소에 대한 액세스는 두 개의 인덱스(괄호로 묶인 행 및 열 번호)를 사용하여 수행됩니다. 예를 들어 B(2,3) 명령은 행렬 B의 두 번째 행과 세 번째 열의 요소를 반환합니다. 행렬에서 열이나 행을 선택하려면 행렬의 열이나 행 번호를 인덱스 중 하나로 사용하고 다른 인덱스는 콜론으로 바꿉니다. 예를 들어, 행렬 A의 두 번째 행을 벡터 z에 써보겠습니다.

콜론을 사용하여 매트릭스 블록을 선택할 수도 있습니다. 예를 들어 행렬 P에서 색상으로 표시된 블록을 선택해 보겠습니다.

작업 환경 변수를 보려면 명령줄에 명령을 입력해야 합니다. 누구 .

작업 환경에는 하나의 스칼라(p), 4개의 행렬(A, B, P, P1) 및 행 벡터(z)가 포함되어 있음을 알 수 있습니다.

2.3. 기본 매트릭스 연산

행렬 연산을 사용할 때 덧셈이나 뺄셈을 하려면 행렬의 크기가 동일해야 하며, 곱셈을 할 때는 첫 번째 행렬의 열 개수가 두 번째 행렬의 행 개수와 같아야 한다는 점을 기억하세요. 숫자와 벡터뿐만 아니라 행렬의 덧셈과 뺄셈은 더하기 및 빼기 기호를 사용하여 수행됩니다.

곱셈은 ​​별표 *로 표시됩니다. 3×2 크기의 행렬을 소개하겠습니다.

행렬에 숫자를 곱하는 것도 별표를 사용하여 수행되며 오른쪽과 왼쪽 모두에서 숫자를 곱할 수 있습니다. 정사각 행렬을 정수 거듭제곱으로 올리는 작업은 ^ 연산자를 사용하여 수행됩니다.

행렬 P 자체를 곱하여 결과를 확인합니다.

2.4. 특별한 유형의 행렬 만들기

직사각형 행렬을 0으로 채우는 것은 내장 함수에 의해 수행됩니다. 0

단위 행렬은 다음 함수를 사용하여 생성됩니다.

함수 호출의 결과로 1로 구성된 행렬이 형성됩니다. 것들

MatLab은 행렬을 난수로 채우는 기능을 제공합니다. 함수의 결과 랜드는 0과 1 사이에 균일하게 분포된 숫자의 행렬이며, 함수는 다음과 같습니다. 랜드- 평균과 단위 분산이 0인 정규 법칙에 따라 분포된 숫자 행렬입니다.

기능 진단하다벡터로부터 대각선 행렬을 형성하여 대각선을 따라 요소를 배열합니다.

2.5. 행렬 계산

MatLab에는 행렬 작업을 위한 다양한 기능이 포함되어 있습니다. 예를 들어 행렬 전치는 아포스트로피를 사용하여 수행됩니다. "

역행렬은 다음 함수를 사용하여 구합니다. inv정사각 행렬의 경우

3. MatLab과 Excel의 통합

MatLab과 Excel을 통합하면 Excel 사용자는 데이터 처리, 다양한 계산 및 결과 시각화를 위한 수많은 MatLab 기능에 액세스할 수 있습니다. Excllink.xla 추가 기능은 이 Excel 확장을 구현합니다. MatLab과 Excel 간의 통신을 위해 특수 함수가 정의되어 있습니다.

3.1. 엑셀 구성

MatLab과 함께 작동하도록 Excel을 설정하기 전에 설치된 MatLab 버전에 Excel 링크가 포함되어 있는지 확인해야 합니다. 기본 MatLab 디렉토리의 exlink 하위 디렉토리 또는 도구 상자 하위 디렉토리에는 excllink.xla 추가 기능이 있는 파일이 있어야 합니다. Excel을 실행하고 도구 메뉴에서 추가 기능을 선택합니다. 현재 사용 가능한 추가 기능에 대한 정보가 포함된 대화 상자가 나타납니다. 찾아보기 버튼을 사용하여 excllink.xla 파일의 경로를 지정합니다. 대화 상자의 추가 기능 목록에 해당 줄이 나타납니다. MatLab과 함께 사용하기 위한 Excel Link 2.0플래그가 설정된 상태입니다. 확인을 클릭하면 필요한 추가 기능이 Excel에 추가되었습니다.

이제 Excel에는 putmatrix, getmatrix, evalstring이라는 세 개의 버튼이 포함된 Excel 링크 도구 모음이 있습니다. 이러한 버튼은 Excel과 MatLab 간의 관계(행렬 데이터 교환, Excel 환경에서 MatLab 명령 실행)를 구현하는 데 필요한 기본 작업을 구현합니다. Excel을 다시 시작하면 excllink.xla 추가 기능이 자동으로 연결됩니다.

Excel과 MatLab의 공동 작업에는 Excel에서 기본적으로 허용되는 몇 가지 추가 설정이 필요합니다(그러나 변경 가능). 도구 메뉴에서 옵션으로 이동하면 옵션 대화 상자가 열립니다. 일반 탭을 선택하고 R1C1 참조 스타일 플래그가 꺼져 있는지 확인하세요. 셀에는 A1, A2 등으로 번호가 지정됩니다. 편집 탭에서 Enter 후 선택 항목 이동 플래그를 설정해야 합니다.

3.2. MatLab과 Excel 간의 데이터 교환

Excel을 실행하고 이전 섹션에 설명된 대로 필요한 모든 설정이 지정되었는지 확인하세요(MatLab은 닫혀 있어야 함). Excel에서 요구하는 대로 소수 자릿수를 구분하는 마침표를 사용하여 셀 A1부터 C3까지 행렬을 입력합니다.

시트에서 셀 데이터를 선택하고 putmatrix 버튼을 클릭하면 MatLab이 실행되고 있지 않다는 경고와 함께 Excel 창이 나타납니다. 확인을 클릭하고 MatLab이 열릴 때까지 기다립니다.

선택한 Excel 셀의 데이터를 내보내야 하는 MatLab 워크벤치 변수의 이름을 지정하는 입력 라인이 있는 Excel 대화 상자가 나타납니다. 예를 들어 M을 입력하고 확인 버튼을 사용하여 창을 닫습니다. MatLab 명령 창으로 이동하여 3x3 배열을 포함하는 변수 M이 워크벤치에 생성되었는지 확인하세요.

예를 들어 행렬 M을 사용하여 MatLab에서 일부 작업을 수행합니다.

부르다 inv다른 MatLab 명령과 마찬가지로 행렬을 반전하려면 Excel에서 직접 수행할 수 있습니다. Excel 링크 패널에 있는 평가 문자열 버튼을 클릭하면 MatLab 명령을 입력해야 하는 입력 줄에 대화 상자가 나타납니다.

IM=inv(M) .

결과는 MatLab 환경에서 명령을 실행할 때 얻은 결과와 유사합니다.

Excel로 돌아가서 A5 셀을 현재 셀로 만들고 getmatrix 버튼을 클릭합니다. Excel로 가져올 변수의 이름을 입력하라는 입력 줄이 있는 대화 상자가 나타납니다. 이 경우 해당 변수는 IM입니다. 확인을 클릭하면 셀 A5부터 A7까지 역행렬 요소가 입력됩니다.

따라서 행렬을 MatLab으로 내보내려면 Excel 시트의 적절한 셀을 선택해야 하며, 이를 가져오려면 가져온 배열의 왼쪽 상단 요소가 될 셀 하나만 지정하면 됩니다. 나머지 요소는 배열의 크기에 따라 시트 셀에 기록되어 그 안에 포함된 데이터를 덮어쓰게 되므로 배열을 가져올 때 주의해야 합니다.

위의 접근 방식은 응용 프로그램 간에 정보를 교환하는 가장 간단한 방법입니다. 소스 데이터는 Excel에 포함된 다음 MatLab으로 내보내고 그곳에서 어떤 방식으로 처리되고 결과는 Excel로 가져옵니다. 사용자는 Excel 링크 도구 모음 버튼을 사용하여 데이터를 전송합니다. 정보는 매트릭스 형태로 표현될 수 있습니다. 워크시트의 직사각형 영역. 행이나 열로 배열된 셀은 각각 MatLab 행 벡터와 열 벡터로 내보내집니다. 행 벡터와 열 벡터를 Excel로 가져오는 작업도 비슷한 방식으로 수행됩니다.

4. 프로그래밍

4.1. M 파일

많은 명령을 입력하고 자주 변경해야 하는 경우 MatLab 명령줄에서 작업하는 것이 어려워집니다. 명령을 사용하여 일기 쓰기 다이어리작업 환경을 유지하면 작업이 조금 더 쉬워집니다. MatLab 명령 그룹을 실행하는 가장 편리한 방법은 명령을 입력하고 한꺼번에 또는 부분적으로 실행하고 파일에 저장하고 나중에 사용할 수 있는 M 파일을 사용하는 것입니다. M 파일 편집기는 M 파일과 함께 작동하도록 설계되었습니다. 도움을 받으면 명령 창을 포함하여 자신만의 함수를 만들고 호출할 수 있습니다.

기본 MatLab 창의 파일 메뉴를 확장하고 새 항목에서 하위 항목 M 파일을 선택합니다. 새 파일은 그림에 표시된 M 파일 편집기 창에서 열립니다.

MatLab에는 두 가지 유형의 M 파일이 있습니다. 프로그램 파일( M-파일 스크립트), 일련의 명령과 파일 기능이 포함되어 있습니다. ( 함수 M-파일), 사용자 정의 함수를 설명합니다.

4.2. 파일 프로그램

하나의 그래픽 창에 두 개의 그래프를 구성하는 명령을 편집기에 입력하세요.

이제 편집기의 파일 메뉴에서 다른 이름으로 저장을 선택하여 기본 MatLab 디렉터리의 작업 하위 디렉터리에 mydemo.m이라는 파일을 저장합니다. 파일에 포함된 모든 명령을 실행하려면 디버그 메뉴에서 실행을 선택합니다. 그래픽 창이 화면에 나타납니다 그림 1, 함수 그래프가 포함되어 있습니다.

파일 프로그램 명령은 명령 창에 출력됩니다. 출력을 억제하려면 명령을 세미콜론으로 종료해야 합니다. 입력 중 오류가 발생하여 MatLab이 명령을 인식하지 못하는 경우 잘못 입력한 명령까지 실행한 후 명령 창에 오류 메시지가 표시됩니다.

M-파일 편집기가 제공하는 매우 편리한 기능은 일부 명령을 실행하는 것입니다. 그래픽 창을 닫습니다. 그림 1. 왼쪽 버튼을 누른 상태에서 마우스를 사용하거나 키를 누른 상태에서 화살표 키를 사용하여 선택합니다. 옮기다, 처음 4개 명령을 텍스트 항목에서 실행합니다. 실행된 명령에 해당하는 하나의 그래프만 그래픽 창에 표시되었습니다. 일부 명령을 실행하려면 해당 명령을 선택하고 F9 키를 누르십시오.

M 파일의 개별 블록에는 실행 중에 건너뛰는 주석이 제공될 수 있지만 M 파일 작업 시에는 편리합니다. 댓글은 퍼센트 기호로 시작하며 자동으로 녹색으로 강조 표시됩니다. 예를 들면 다음과 같습니다.

기존 M 파일 열기는 작업 환경의 파일 메뉴에 있는 열기 항목이나 M 파일 편집기를 사용하여 수행됩니다.

4.3. 파일 기능

위에서 설명한 파일 프로그램은 MatLab 명령의 시퀀스일 뿐이며 입력 또는 출력 인수가 없습니다. 수치적 방법을 사용하고 MatLab에서 자신만의 응용 프로그램을 프로그래밍할 때 입력 인수를 사용하여 필요한 작업을 수행하고 출력 인수에 작업 결과를 반환하는 파일 함수를 생성할 수 있어야 합니다. 파일 기능을 사용하는 방법을 이해하는 데 도움이 되는 몇 가지 간단한 예를 살펴보겠습니다.

다변량 계량화학 분석의 데이터를 전처리할 때 센터링이 자주 사용됩니다. 파일 함수를 한 번 작성한 다음 센터링이 필요할 때마다 호출하는 것이 합리적입니다. M 파일 편집기에서 새 파일을 열고 다음을 입력하세요.

첫 번째 줄의 function이라는 단어는 이 파일에 함수 파일이 포함되어 있음을 지정합니다. 첫 번째 줄은 함수 이름과 입력 및 출력 인수 목록을 포함하는 함수 헤더입니다. 예제에서 함수 이름은 centering 이고, 하나의 입력 인수는 X이고, 하나의 출력 인수는 Xc입니다. 헤더 뒤에는 주석이 오고 그 다음에는 값이 계산되는 함수 본문(이 예에서는 두 줄로 구성됨)이 옵니다. 계산된 값을 Xc에 쓰는 것이 중요합니다. 불필요한 정보가 화면에 표시되는 것을 방지하려면 세미콜론을 포함하는 것을 잊지 마십시오. 이제 작업 디렉터리에 파일을 저장합니다. 파일 메뉴에서 저장 또는 다른 이름으로 저장을 선택하면 파일 이름 필드에 이미 이름이 가운데에 포함되어 있는 파일 저장 대화 상자가 나타납니다. 변경하지 말고 제안된 이름으로 함수 파일을 파일에 저장하세요!

이제 생성된 함수를 내장된 sin, cos 등의 함수와 동일하게 사용할 수 있습니다. 자체 함수는 파일 프로그램 및 다른 파일 함수에서 호출할 수 있습니다. 행렬을 확장할 파일 함수를 직접 작성해 보십시오. 각 열을 해당 열의 표준 편차로 나눕니다.

쉼표로 구분된 목록에 배치된 여러 입력 인수를 사용하여 함수 파일을 작성할 수 있습니다. 여러 값을 반환하는 함수를 만들 수도 있습니다. 이를 위해 출력 인수가 쉼표로 구분되어 출력 인수 목록에 추가되고 목록 자체는 대괄호로 묶입니다. 좋은 예는 초 단위로 지정한 시간을 시, 분, 초로 변환하는 함수입니다.

여러 출력 인수를 사용하여 파일 함수를 호출하는 경우 결과는 적절한 길이의 벡터에 기록되어야 합니다.

4.4 그래프 만들기

MatLab은 벡터와 행렬을 그래픽으로 표시하고 주석을 생성하고 그래프를 인쇄하는 광범위한 기능을 갖추고 있습니다. 몇 가지 중요한 그래픽 기능을 설명하겠습니다.

기능 구성입력 매개변수와 연관된 다양한 형태를 가집니다. 예를 들어, 플롯(y)는 y의 요소와 해당 인덱스의 조각별 선형 그래프를 생성합니다. 두 벡터가 인수로 주어지면,plot(x,y)는 y 대 x의 그래프를 생성합니다. 예를 들어, 0에서 2π 범위의 sin 함수를 플로팅하려면 다음을 수행하십시오.

프로그램은 창에 표시되는 종속성 그래프를 작성했습니다. 그림 1

MatLab은 사용자가 지정하지 않는 한 자동으로 각 플롯에 서로 다른 색상을 할당하여 데이터 세트를 구별할 수 있도록 합니다.

기다리다기존 그래프에 곡선을 추가할 수 있습니다. 기능 서브플롯하나의 창에 여러 그래프를 표시할 수 있습니다.

4.5 그래프 인쇄

파일 메뉴의 인쇄 항목과 명령 인쇄 MatLab 그래픽을 인쇄합니다. 인쇄 메뉴는 일반적인 표준 인쇄 옵션을 선택할 수 있는 대화 상자를 표시합니다. 팀 인쇄출력에 더 큰 유연성을 제공하고 M 파일에서 인쇄를 제어할 수 있습니다. 결과는 기본 프린터로 직접 전송되거나 지정된 파일에 저장될 수 있습니다.

5. 샘플 프로그램

이 섹션에서는 다차원 데이터 분석에 가장 일반적으로 사용되는 알고리즘에 대해 설명합니다. 가장 간단한 데이터 변환 방법(센터링 및 스케일링)과 데이터 분석 알고리즘(PCA, PLS)이 모두 고려됩니다.

5.1. 센터링 및 스케일링

분석 중에 원본 데이터를 변환해야 하는 경우가 많습니다. 데이터 변환에 가장 일반적으로 사용되는 방법은 각 변수를 표준편차로 중심화하고 크기를 조정하는 것입니다. 행렬의 중심을 맞추기 위한 함수 코드가 제공되었습니다. 따라서 아래에는 해당 함수의 코드만 표시되어 있습니다. 저울데이터. 원래 행렬은 중앙에 위치해야 합니다.

함수 Xs = 스케일링(X)
% 스케일링: 출력 행렬은 Xs입니다.
% 행렬 X는 중앙에 위치해야 합니다.

Xs = X * inv(diag(std(X)));

%스케일링 종료

5.2. SVD/PCA

다변량 분석에서 가장 많이 사용되는 데이터 압축 방법은 주성분 분석(PCA)입니다. 수학적 관점에서 PCA는 원래 행렬을 분해한 것입니다. 엑스, 즉. 두 행렬의 곱으로 표현그리고

엑스 = TP t+

이자형 두 행렬의 곱으로 표현행렬

를 점수 행렬이라고 하고, 이 행렬을 잔차 행렬이라고 합니다. 두 행렬의 곱으로 표현그리고 행렬을 찾는 가장 간단한 방법 - 표준 MatLab 함수를 통해 SVD 분해를 사용합니다. .

svd

함수 = pcasvd(X)
Svd(X);
T = U * D;

P=V;

pcasvd의 %끝

5.3 PCA/NIPALS 엑스 PCA 계정 및 로드를 구축하기 위해 각 단계에서 하나의 구성 요소를 계산하는 반복 알고리즘 NIPALS가 사용됩니다. 먼저 원래 행렬 t+ 0 , (최소 중심, 참조) 변환되어 행렬로 변합니다.

=0. 다음으로 다음 알고리즘이 적용됩니다. 2. =0. 다음으로 다음 알고리즘이 적용됩니다.티 = t+ / =0. 다음으로 다음 알고리즘이 적용됩니다.티 = =0. 다음으로 다음 알고리즘이 적용됩니다. 3. = / (티 = =0. 다음으로 다음 알고리즘이 적용됩니다. = t+ / 티 = ) ½ 4.

5. 수렴을 확인하고 그렇지 않은 경우 2로 이동합니다. (최소 중심, 참조) 변환되어 행렬로 변합니다.다음을 계산한 후 ( =0. 다음으로 다음 알고리즘이 적용됩니다.==0. 다음으로 다음 알고리즘이 적용됩니다.-th) 구성 요소, 우리는 가정합니다 = t+ (최소 중심, 참조) 변환되어 행렬로 변합니다.+1 = t+=0. 다음으로 다음 알고리즘이 적용됩니다. (최소 중심, 참조) 변환되어 행렬로 변합니다.그리고 (최소 중심, 참조) 변환되어 행렬로 변합니다.+1.

~에 엑스.

NIPALS 알고리즘의 코드는 독자가 직접 작성할 수 있으며 저자는 자신의 버전을 제공합니다. PCA를 계산할 때 주성분 수(변수 수PC)를 입력할 수 있습니다. 필요한 구성 요소 수를 모르는 경우 명령줄에 = pcanipals (X)를 쓰면 프로그램이 구성 요소 수를 원래 행렬의 가장 작은 차원과 동일하게 설정합니다.

함수 = pcanipals(X, numberPC)
구성 요소 수의 % 계산

= 크기(X); 피=; 티=;
lenfth(numberPC) > 0인 경우
pc = 번호PC(1);< X_c
elseif (길이(숫자PC) == 0) & X_r
pc = X_r;
또 다른
pc = X_c;

끝;
k = 1:pc의 경우
P1 = 랜드(X_c, 1); T1 = X * P1; d0 = T1"*T1;

P1 = (T1" * X/(T1" * T1))"; P1 = P1/norm(P1); T1 = X * P1; d = T1" * T1;
d - d0 > 0.0001;
P1 = (T1" * X/(T1" * T1)); P1 = P1/표준(P1); T1 = X * P1; d0 = T1"*T1;
P1 = (T1" * X/(T1" * T1)); P1 = P1/표준(P1); T1 = X * P1; d = T1"*T1;


P1 = (T1" * X/(T1" * T1)); P1 = P1/표준(P1); T1 = X * P1; d = T1"*T1;

X = X - T1 * P1; P = cat(1, P, P1"); T = ;

Chemometrics 추가 기능을 사용하여 PCA를 계산하는 방법은 튜토리얼에 설명되어 있습니다.

5.4PLS1 엑스다변량 보정에 가장 널리 사용되는 방법은 PLS(Projection to Latent Structures) 방법입니다. 이 방법에는 예측 행렬의 동시 분해가 포함됩니다. 및 응답 매트릭스:

엑스=와이 t+ 및 응답 매트릭스=t+와이 UQ 두 행렬의 곱으로 표현=에프(티 = XW) –1

엑스투영은 일관되게 구성되어 해당 벡터 간의 상관 관계를 최대화합니다. =0. 다음으로 다음 알고리즘이 적용됩니다.그리고 및 응답 매트릭스-계정 -계정및 응답 매트릭스. 데이터 블록인 경우 여러 응답을 포함합니다(예:케이 >1) 초기 데이터의 두 가지 투영(PLS1 및 PLS2)을 구성할 수 있습니다. 첫 번째 경우에는 각 응답에 대해 와이케이 두 행렬의 곱으로 표현 (자신만의 투영 부분공간이 구성됩니다. 동시에 청구서는 (XW, ) 및 부하) 어떤 응답이 사용되는지에 따라 다릅니다. 이 접근 방식을 PLS1이라고 합니다. PLS2 방법의 경우 모든 응답에 공통되는 하나의 투영 공간만 구성됩니다.

PLS 방법에 대한 자세한 설명은 PLS1 계정 및 로드를 구축하기 위해 순환 알고리즘이 사용됩니다. 먼저 원래 행렬 엑스-th) 구성 요소, 우리는 가정합니다 및 응답 매트릭스센터

= mc(X);
= mc(Y);

그리고 그들은 매트릭스로 변합니다 t+ 0과 벡터 에프 0 , (최소 중심, 참조) 변환되어 행렬로 변합니다.=0. 그런 다음 다음 알고리즘이 적용됩니다.

1. 에프t+ (최소 중심, 참조) 변환되어 행렬로 변합니다. 2. = / (티 = ) ½ 3. =0. 다음으로 다음 알고리즘이 적용됩니다. = t+ 4. = =0. 다음으로 다음 알고리즘이 적용됩니다.티 = 에프 / =0. 다음으로 다음 알고리즘이 적용됩니다.티 = =0. 다음으로 다음 알고리즘이 적용됩니다. 5. -계정 = 에프 / 2 6. =0. 다음으로 다음 알고리즘이 적용됩니다.티 = t+ / =0. 다음으로 다음 알고리즘이 적용됩니다.티 = =0. 다음으로 다음 알고리즘이 적용됩니다.

5. 수렴을 확인하고 그렇지 않은 경우 2로 이동합니다. (최소 중심, 참조) 변환되어 행렬로 변합니다.다음을 계산한 후 ( =0. 다음으로 다음 알고리즘이 적용됩니다.==0. 다음으로 다음 알고리즘이 적용됩니다.-th) 구성 요소, 우리는 가정합니다 =. 다음 구성요소를 얻으려면 나머지를 계산해야 합니다. t+ (최소 중심, 참조) 변환되어 행렬로 변합니다.+1 = t+=0. 다음으로 다음 알고리즘이 적용됩니다. t에 동일한 알고리즘을 적용하여 인덱스를 교체합니다. (최소 중심, 참조) 변환되어 행렬로 변합니다.그리고 (최소 중심, 참조) 변환되어 행렬로 변합니다.+1.

다음은 책에서 가져온 이 알고리즘의 코드입니다.

함수 = pls(x, y)
%PLS: PLS 구성요소를 계산합니다.
%출력 벡터는 w, t, u, q 및 p입니다.
%
% y에서 벡터 u를 시작 벡터로 선택합니다.

u = y(:, 1);

% 수렴 기준이 매우 높게 설정되었습니다.
크리 = 100;

% 여기부터 끝까지의 명령은 수렴될 때까지 반복됩니다.
동안(크리 > 1e - 10)

% 각 시작 벡터 u는 uold로 저장됩니다.
uold = 당신; w = (u" * x)"; w = w/표준(w);
t = x * w; q = (t" * y)"/(t" * t);
u = y * q/(q" * q);

% 수렴 기준은 u-uold의 노름을 u의 노름으로 나눈 값입니다.
kri = norm(uold - u)/norm(u);
pc = X_c;

% 수렴 후 p를 계산합니다.
p = (t" * x)"/(t" * t);

%pls 끝

애드인을 사용한 PLS1 계산 정보 계량화학추가 Excel의 투영 방법 매뉴얼에 설명되어 있습니다.

5.5PLS2

PLS2의 경우 알고리즘은 다음과 같습니다. 먼저 원래 행렬 엑스-th) 구성 요소, 우리는 가정합니다 및 응답 매트릭스변환(적어도 - 중심, 참조)하고 행렬로 변합니다. t+ 0과 UQ 0 , (최소 중심, 참조) 변환되어 행렬로 변합니다.=0. 그런 다음 다음 알고리즘이 적용됩니다.

1. 초기 벡터를 선택하세요 -계정 2. -계정티 = t+ (최소 중심, 참조) 변환되어 행렬로 변합니다. 3. = / (티 = =0. 다음으로 다음 알고리즘이 적용됩니다. = t+ 5. =0. 다음으로 다음 알고리즘이 적용됩니다.티 = UQ / =0. 다음으로 다음 알고리즘이 적용됩니다.티 = =0. 다음으로 다음 알고리즘이 적용됩니다. 6. -계정 = UQ / 티 = 7. 수렴을 확인하고 그렇지 않은 경우 2 8로 이동합니다. =0. 다음으로 다음 알고리즘이 적용됩니다.티 = t+ / =0. 다음으로 다음 알고리즘이 적용됩니다.티 = =0. 다음으로 다음 알고리즘이 적용됩니다.

5. 수렴을 확인하고 그렇지 않은 경우 2로 이동합니다. (최소 중심, 참조) 변환되어 행렬로 변합니다.아) PLS2 구성 요소를 넣어야 합니다: =0. 다음으로 다음 알고리즘이 적용됩니다.==0. 다음으로 다음 알고리즘이 적용됩니다., =피, 승=, -계정=-계정-th) 구성 요소, 우리는 가정합니다 a = . 다음 구성요소를 얻으려면 나머지를 계산해야 합니다. t+ (최소 중심, 참조) 변환되어 행렬로 변합니다.+1 = t+tp티와 UQ +1 = UQ (최소 중심, 참조) 변환되어 행렬로 변합니다.tq t에 동일한 알고리즘을 적용하여 인덱스를 교체합니다. (최소 중심, 참조) 변환되어 행렬로 변합니다.그리고 (최소 중심, 참조) 변환되어 행렬로 변합니다.+1.

다음은 책에서도 빌려온 코드입니다.

함수 = plsr(x, y, a)
% PLS: PLS 구성요소를 계산합니다.
% 출력 행렬은 W, T, U, Q 및 P입니다.
% B에는 회귀 계수가 포함되고 SS에는 다음의 합이 포함됩니다.
잔차에 대한 % 제곱입니다.
% a는 구성 요소의 수입니다.
%
% 구성요소의 경우: 종료하려면 모든 명령을 사용하십시오.

i=1:a의 경우
% 제곱합을 계산합니다. ss 함수를 사용하세요.
sx = ;
싸이 = ;

% 하나의 성분을 계산하려면 pls 함수를 사용하십시오.
= pls(x, y);

% 잔차를 계산합니다.
x = x - t * p";
y = y - t * q";

% 벡터를 행렬로 저장합니다.
여 = ;
티 = ;
유 = ;
Q = ;
피 = ;
pc = X_c;

% 루프 후 회귀 계수를 계산합니다.
B=W*inv(P"*W)*Q";

% 최종 잔차 SS를 제곱합 벡터에 추가합니다.
sx=;
싸이=;

% X와 Y에 대한 ss 벡터의 행렬을 만듭니다.
SS = ;

%사용된 SS의 비율을 계산합니다.
= 크기(SS);
tt = (SS * diag(SS(1,:).^(-1)) - 1(a, b)) * (-1)

%plsr 끝

함수 = ss(x)
%SS: 행렬 X의 제곱합을 계산합니다.
%

ss=sum(sum(x. * x));
%ss의 끝

애드인을 사용한 PLS2 계산 정보 계량화학추가 Excel의 투영 방법 매뉴얼에 설명되어 있습니다.

결론

MatLab은 데이터 분석에 매우 널리 사용되는 도구입니다. 조사에 따르면 전체 연구자 중 최대 3분의 1이 Unsrambler 프로그램을 사용하는 반면, Unsrambler 프로그램은 과학자 중 16%만 사용하는 것으로 나타났습니다. MatLab의 가장 큰 단점은 높은 가격입니다. 또한 MatLab은 일상적인 계산에도 좋습니다. 상호 작용이 부족하면 새로운 탐색되지 않은 데이터 세트에 대한 검색, 연구 계산을 수행할 때 불편합니다.

안녕하세요, 독자 여러분! MatLab 프로그래밍의 기본 사항에 대한 기사에서 우리는 주로 수학적 계산에 사용할 이 언어의 구문에 대해 알게 될 것입니다.

MATLAB은 주요 데이터 요소가 배열인 대화형 시스템입니다. 이를 통해 다른 프로그래밍 언어를 사용하여 프로그램을 작성하는 것보다 몇 배 더 빠르게 다양한 기술 컴퓨팅 문제, 특히 벡터 및 행렬과 관련된 문제를 해결할 수 있습니다.

MATLAB의 변수:

변수에는 여러 유형이 있으며, 가장 기본적인 변수는 다음과 같습니다.

  • 논리적(참 – 1, 거짓 – 0)
  • – 문자열
  • 숫자– 부동 소수점 숫자 배열
  • 정수: int8(8비트 부호 있는 정수 배열, 숫자당 1바이트), int16, int32, int64
  • 하나의– 단정밀도 부동 소수점 숫자 배열(숫자당 4바이트)
  • 더블– 배정밀도 부동 소수점 숫자 배열(16자)
  • 구조– 이름과 함께 데이터를 저장하기 위한 구조화된 필드 배열

변수 이름:
길이 - 최대 63자;
함수 및 프로시저의 이름과 일치해서는 안 됩니다.
문자로 시작해야 합니다.
문자, 숫자, 밑줄을 포함할 수 있습니다.
크고 작은 글자가 있습니다.

변수를 설정하는 것은 매우 쉽습니다.

다른 예시:

>> a=2;b=4;a+b ans = 6

보시다시피 Matlab 자체는 2개의 변수를 사용한 연산 결과를 표시합니다.

배열:

작업부터 시작해 보겠습니다. 1차원적인배열:

명령줄 명령: x= 또는 x=
개별 요소 지정: x(3) = 3
배열의 길이는 다음 명령을 사용하여 찾을 수 있습니다: length (x)

다음으로 넘어가자 2차원배열:

명령줄 명령: x =

답변 = 1 2 3 4 5 6 7 8

개별 요소 지정: x(2,3) = 7
배열의 별도 p번째 행에 액세스: y = [p,:]
배열의 k번째 열에 액세스: y = [:,k]
B=A(:,:) 명령은 행렬의 모든 요소에 액세스합니다. 행렬 A의 복사본을 만듭니다.

표준 행렬에 대해서도 알아야 합니다.

  • zeros(n,m) — nxm 크기의 0으로 구성된 행렬
  • ones(n,m) – nxm 크기의 단위 행렬
  • rand(n,m) – nxm 크기의 난수 행렬
  • eye(n,m) – nxm 크기의 주대각선에 있는 1의 행렬

운영자:

운영자 없이는 모든 것을 마스터하는 것이 불가능하기 때문에 운영자를 알아야 합니다. MATLAB 프로그래밍의 기본.

  • 산술 연산자(산술 표현식, 계산)
  • 관계 연산자(인수 비교)
  • 논리 연산자(논리식)

산술 연산자 우선 순위 수준:

  1. 요소별 전치(.'), 요소별 지수화(.*), 행렬 공액('), 행렬 지수화(^)
  2. 단항 더하기(+) 및 단항 빼기(-)
  3. 요소별 배열 곱셈(.*), 배열의 오른쪽 나누기(./) 및 왼쪽 나누기(.\), 행렬 곱셈(*), 선형 방정식 연산 시스템 풀이(/) 및(\)
  4. 배열의 더하기(+)와 빼기(-)
  5. 운영자 (:)

각 수준 내에서 연산자는 동일한 우선순위를 가지며 왼쪽에서 오른쪽으로 평가됩니다. 괄호를 사용하여 계산 순서를 변경할 수 있습니다.

관계 연산자:

  • > - 더보기 - gt() 함수
  • >= - 크거나 같음 - ge() 함수
  • == - 같음 - 함수 예()
  • ~= - 같지 않음 - ne() 함수

우선순위는 산술보다 낮지만 논리 연산자보다 높습니다.

논리 연산자:

  • & - 배열: 1 - 두 요소가 모두 참(0이 아님)인 각 위치에 대해, 다른 모든 요소에 대해 0입니다. and() 함수
  • | - 배열: 1 - 적어도 하나의 요소가 true(0이 아님) 값을 갖는 각 위치에 대해, 다른 모든 요소에 대해 0입니다. or() 함수
  • ~ - 입력 배열 A의 각 요소에 대한 논리적 부정입니다. not() 함수
  • xor - 배열: 1 - 한 요소만 true(0이 아님)인 각 위치에 대해, 0 - 다른 모든 요소에 대해
A = ; B = ; A&B = 01001 A|B = 11101 ~A = 10010 xor(A,B)=10100

간단한 예:

난수를 사용하여 3x4 행렬 지정:

>> 랜드(3,4) ans = 0.8147 0.9134 0.2785 0.9649 0.9058 0.6324 0.5469 0.1576 0.1270 0.0975 0.9575 0.9706 >> x = x = 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 >> det (x) ans = 0 >> x = X1 = 1 2 4 5 6 7 >> x = X2 = 1 2 4 5 6 7 >> x1*x2 ans = 11 14 18 29 38 51 41 54 73

오늘은 여기서 마치겠습니다. 다음 기사에서는 MATLAB의 모든 기능을 자세히 다룰 것입니다. 저를 믿으세요. 이러한 기회는 매우 좋습니다.
궁금한 점이 있으면 댓글로 질문하세요.

소개

MATLAB(영어의 줄임말)"매트릭스 연구소" ) - 기술적 컴퓨팅 문제를 해결하기 위한 응용 프로그램 패키지와 이 패키지에 사용되는 동일한 이름의 프로그래밍 언어입니다. MATLAB ® 1,000,000명 이상의 엔지니어와 과학자가 사용하고 있으며 대부분의 최신 운영 체제에서 실행됩니다.

프로그래밍 언어인 MATLAB이 개발되었습니다. 클리브 모울러마지막에 1970년대그가 학장이었던 시절 학부 컴퓨터과학 뉴멕시코대학교. 개발의 목적은 교수진의 학생들에게 소프트웨어 라이브러리를 사용할 수 있는 기회를 제공하는 것이었습니다. 린팩그리고 에이스팩공부할 필요 없이 포트란. 새로운 언어는 곧 다른 대학으로 퍼졌고 응용 수학 분야에서 일하는 과학자들로부터 큰 관심을 받았습니다. 오늘날에도 여전히 인터넷에서 버전을 찾을 수 있습니다. 1982년, Fortran으로 작성, 배포 오픈 소스. 엔지니어 존 리틀( 영어 남자 N. () 작은)는 Cleve Mowler가 방문하는 동안 이 언어에 대해 알게 되었습니다. 스탠포드 대학교 V 1983년. 새로운 언어가 상업적인 잠재력이 크다는 것을 깨닫고 그는 Cleve Mowler 및 Steve Bangert와 팀을 이루었습니다. 영어 스티브 방거트). 그들은 함께 MATLAB을 다음과 같이 다시 작성했습니다. 그리고 설립된 1984 회사 매스웍스추가 개발을 위해. C로 다시 작성된 이 라이브러리는 오랫동안 JACKPAC이라는 이름으로 알려져 있었습니다. MATLAB은 원래 제어 시스템 설계(John Little의 전문 분야)용으로 만들어졌지만 다른 많은 과학 및 엔지니어링 분야에서도 빠르게 인기를 얻었습니다. 그것은 또한 교육, 특히 교육에 널리 사용되었습니다. 선형대수학그리고 수치적 방법.

MATLAB 언어는 행렬 기반 데이터 구조, 광범위한 기능, 통합 개발 환경, 객체 지향 기능, 다른 프로그래밍 언어로 작성된 프로그램에 대한 인터페이스를 포함하는 고급 해석 프로그래밍 언어입니다.

MATLAB으로 작성된 프로그램에는 함수와 스크립트라는 두 가지 유형이 있습니다. 함수에는 입력 및 출력 인수가 있을 뿐만 아니라 중간 계산 결과와 변수를 저장하기 위한 자체 작업 공간도 있습니다. 스크립트는 공통 작업공간을 사용합니다. 스크립트와 함수는 모두 기계어 코드로 컴파일되지 않고 텍스트 파일로 저장됩니다.

MATLAB 언어의 주요 특징은 행렬 작업을 위한 광범위한 기능이며, 언어 작성자는 이를 "벡터적으로 생각하라"라는 슬로건으로 표현했습니다.

MATLAB은 특히 다음과 같은 수학의 거의 모든 영역을 포괄하는 데이터 분석을 위한 수많은(수백 개) 함수를 사용자에게 제공합니다.

    행렬 및 선형 대수 - 행렬 대수, 선형 방정식, 고유값 및 벡터, 특이점, 행렬 분해 및 기타.

    다항식 및 근 다항식의 보간, 다항식의 연산 및 미분, 곡선의 보간 및 외삽 등.

    수학적 통계 및 데이터 분석 - 통계 함수, 통계 회귀, 디지털 필터링, 고속 푸리에 변환 및 기타.

    데이터 처리 - 플로팅, 최적화, 제로 검색, 수치 적분(구적법) 등을 포함한 일련의 특수 기능입니다.

    미분 방정식 - 미분 및 미분 대수 방정식, 지연이 있는 미분 방정식, 제한이 있는 방정식, 부분 미분 방정식 등을 해결합니다.

    희소 행렬은 특수 응용 프로그램에 사용되는 MATLAB 패키지의 특수 데이터 클래스입니다.

    정수 산술 - MATLAB에서 정수 산술 연산을 수행합니다.

1. 기본정보

1.1. MatLab 작업 환경

프로그램을 시작하려면 아이콘을 두 번 클릭하십시오. 그림에 표시된 작업 환경이 눈앞에 열립니다.

MatLab 6.x 작업 환경에는 다음 요소가 포함되어 있습니다.

    버튼과 드롭다운 목록이 있는 도구 모음;

    탭 창 발사대그리고 작업공간, 다양한 ToolBox 모듈과 워크벤치 콘텐츠에 액세스할 수 있습니다.

    탭 창 명령 기록그리고 현재 디렉토리, 이전에 입력한 명령을 보고 다시 호출하고 현재 디렉토리를 설정하기 위한 것입니다.

    "입력" 프롬프트와 깜박이는 수직 커서가 포함된 명령 창;

    상태 표시 줄.

MatLab 6.x 작업 환경에서 그림에 표시된 창 중 일부가 누락된 경우 메뉴로 이동해야 합니다. 보다적절한 항목을 선택하십시오. 명령 창, 명령 기록, 현재 디렉토리, 작업공간, 발사대.

명령은 명령 창에 입력해야 합니다. 명령줄 프롬프트를 나타내는 " 기호는 입력할 필요가 없습니다. 작업 영역을 보려면 스크롤 막대나 키를 사용하는 것이 편리합니다. ,, 왼쪽이나 오른쪽으로 이동 페이지 위로,페이지다운위나 아래로 이동합니다. 갑자기 명령창 작업 영역을 이리저리 이동하다가 커서가 깜박이는 명령줄이 사라지면 그냥 클릭하면 됩니다. 입력하다.

모든 명령이나 표현식 입력은 다음을 누르는 것으로 끝나야 한다는 점을 기억하는 것이 중요합니다. 입력하다, MatLab 프로그램이 이 명령을 실행하거나 표현식을 평가하기 위해.

1.2. 간단한 계산

명령줄에 1+2를 입력하고 다음을 누르세요. 입력하다. 결과적으로 MatLab 명령 창에는 다음이 표시됩니다.

쌀. 2 주성분 분석의 그래픽 표현

MatLab 프로그램은 무엇을 했나요? 먼저 합계 1+2를 계산한 다음 그 결과를 특수 변수 ans에 쓴 다음 해당 값인 3을 명령 창에 표시했습니다. 응답 아래에는 MatLab이 추가 계산을 할 준비가 되었음을 나타내는 깜박이는 커서가 있는 명령줄이 있습니다. 명령줄에 새 표현식을 입력하고 그 의미를 찾을 수 있습니다. 예를 들어 (1+2)/4.5 계산과 같이 이전 표현식으로 작업을 계속해야 하는 경우 가장 쉬운 방법은 ans 변수에 저장된 기존 결과를 사용하는 것입니다. ans/4.5(소수점 입력 시 점이 사용됨)를 입력하고 입력하다, 그것은 밝혀

쌀. 3 주성분 분석의 그래픽 표현

1.3. 에코 명령

MatLab에서 각 명령을 실행하면 에코가 발생합니다. 위의 예에서 답은 ans = 0.6667입니다. 에코로 인해 프로그램 작동을 인식하기 어려워지면 프로그램이 꺼질 수 있는 경우가 많습니다. 이렇게 하려면 명령이 세미콜론으로 끝나야 합니다. 예를 들어

쌀. 4 ScoresPCA 함수 입력 예

1.4. 작업 환경 보존. 매트 파일

모든 변수 값을 저장하는 가장 쉬운 방법은 메뉴를 사용하는 것입니다 파일작업공간을 다른 이름으로 저장. 대화 상자가 나타납니다 작업 공간 변수 저장, 디렉터리와 파일 이름을 지정해야 합니다. 기본적으로 기본 MatLab 디렉터리의 작업 하위 디렉터리에 파일을 저장하는 것이 좋습니다. 프로그램은 작업 결과를 확장자가 mat.인 파일에 저장합니다. 이제 MatLab을 닫을 수 있습니다. 다음 작업 세션에서는 변수 값을 복원하려면 하위 항목을 사용하여 저장된 이 파일을 열어야 합니다. 열려 있는메뉴 파일. 이제 마지막 세션에서 정의한 모든 변수를 다시 사용할 수 있습니다. 새로 입력한 명령에 사용할 수 있습니다.

강의 3. MATLAB 프로그래밍.

1. M-파일. ................................................. ...... ............................................ ...................................................... .........

1.1. 편집자에서 일하기 M-파일. ................................................. ...... ............................................ ............ ...

1.2. M-파일의 종류. 파일 프로그램. ................................................. ....... ..................................................

1.3. 파일 기능. ................................................. ...... ............................................ ............ ...............................

파일 기능 하나의 입력 인수로.......................................................................................

파일 기능 여러 입력 인수를 사용합니다........................................................................

파일 기능 여러 출력 인수를 사용합니다.....................................................................

1.4. 하위 기능. ................................................. ...... ............................................ ............ ...................................

2. 프로그래밍 언어의 구성을 제어합니다....................................................................

2.1. 루프 연산자..............................................................................................................................

for 루프. ................................................. ...... ............................................ ...................................................... ......

while 루프. ................................................. ...... ............................................ ............ ....................................

2.2. 지점 운영자....................................................................................................................

조건부 연산자만약에 . ................................................. ...... ............................................ ............ ...................

스위치 문. ................................................. ...... ............................................ ............ ................................

2.3. Break, Continue 및 Return 문입니다. ................................................. .....................................

2.4. MATLAB의 합리적인 프로그래밍 기술에 대해 설명합니다........................................................

많은 수학적 시스템은 사용자가 프로그래밍을 거의 또는 전혀 하지 않고도 문제를 해결할 것이라는 가정하에 만들어졌습니다. 그러나 처음부터 그러한 경로에는 단점이 있고 큰 결함이 있다는 것이 분명했습니다. 많은 문제에는 알고리즘 작성을 단순화하고 때로는 후자를 생성하기 위한 새로운 방법을 제공하는 개발된 프로그래밍 도구가 필요합니다.

한편, MATLAB에는 이전에는 매우 복잡한 프로그램을 준비해야 했던 많은 실제 문제를 성공적으로 해결하는 수많은 내장 연산자와 함수(천 개에 육박)가 포함되어 있습니다. 예를 들어, 행렬의 역전 또는 전치, 도함수 또는 적분 값 계산 등을 위한 함수입니다. 시스템 확장 패키지를 고려한 이러한 함수의 수는 이미 수천 개에 달하며 지속적으로 증가하고 있습니다. 그러나 반면에 MATLAB 시스템은 탄생 순간부터 기술적 계산을 위한 강력한 수학 지향 프로그래밍 언어로 만들어졌습니다. 높은 레벨.그리고 많은 사람들은 이것을 시스템의 중요한 이점으로 간주하여 새롭고 가장 복잡한 수학적 문제를 해결하는 데 사용할 수 있는 가능성을 나타냅니다.

MATLAB 시스템에는 BASIC(Fortran과 Pascal이 혼합된)을 연상시키는 입력 언어가 있습니다. 시스템에 프로그램을 기록하는 것은 전통적이므로 대부분의 컴퓨터 사용자에게 친숙합니다. 또한 시스템에서는 사용자에게 친숙한 텍스트 편집기를 사용하여 프로그램을 편집할 수 있습니다. 또한 디버거가 포함된 자체 편집기도 있습니다. 수학적 계산 프로그래밍 측면에서 MATLAB 시스템 언어는 범용 고급 프로그래밍 언어보다 훨씬 풍부합니다. 객체 지향 및 시각적 프로그래밍을 포함하여 거의 모든 알려진 프로그래밍 도구를 구현합니다. 이는 숙련된 프로그래머에게 자기 표현을 위한 끝없는 기회를 제공합니다.

1. M-파일.

안에 이전 강의에서 우리는 명령줄에 여러 명령을 입력하여 실행하는 매우 간단한 예를 살펴보았습니다. 더 복잡한 작업의 경우 명령 수가 증가하고 명령줄 작업이 비생산적이 됩니다. 명령 기록을 사용하여,

작업 환경 변수를 저장하거나 일기를 사용하여 일기를 쓰는 것은 무시할 수 있습니다.

업무 생산성을 높입니다. 효과적인 솔루션은 작업 환경이나 편집기에서 시작할 수 있는 프로그램(M 파일) 형태로 자신만의 알고리즘을 설계하는 것입니다. MATLAB에 내장된 M 파일 편집기를 사용하면 프로그램의 텍스트를 입력하고 전체 또는 부분적으로 실행할 수 있을 뿐만 아니라 알고리즘을 디버깅할 수도 있습니다. M-파일의 상세한 분류는 아래와 같습니다.

1.1. M-파일 편집기에서 작업 중입니다.

m-파일을 준비, 편집 및 디버깅하는 데 특수 다중 창 편집기가 사용됩니다. 일반적인 Windows 응용 프로그램처럼 설계되었습니다. 편집기는 명령줄의 편집 명령이나 주 메뉴 명령인 파일 | 신규 | M-파일. 그런 다음 편집기 창에서 자신만의 파일을 만들고 디버깅 및 실행 도구를 사용할 수 있습니다. 파일을 실행하기 전에 파일 | 편집기 메뉴에서 다른 이름으로 저장하세요.

그림 1은 편집기/디버거 창을 보여줍니다. 파일의 준비된 텍스트(이것은 MATLAB 프로그래밍 언어에서 가장 간단하고 첫 번째 프로그램임)를 디스크에 쓸 수 있습니다. 이렇게 하려면 표준 Windows 창을 사용하여 지정된 이름의 파일을 작성하는 다른 이름으로 저장 명령을 사용하십시오. M 파일 이름은 고유해야 하며 파일 이름 요구 사항은 MATLAB 환경 변수 이름과 동일합니다. 파일을 디스크에 쓴 후 도구 모음이나 디버그 메뉴에서 실행 명령을 실행하거나 간단히 ., m-파일을 실행하기 위해.

언뜻 보기에 편집기/디버거는 단순히 "사용자 - MATLAB" 체인의 추가 링크인 것처럼 보일 수 있습니다. 실제로 파일의 텍스트를 시스템 창에 입력해도 동일한 결과를 얻을 수 있습니다. 그러나 실제로는 편집기/디버거가 중요한 역할을 합니다. 명령 모드에서 작업할 때 수반되는 수많은 "허스크" 없이 m 파일(프로그램)을 생성할 수 있습니다. 이러한 파일의 텍스트는 철저한 구문 검사를 거치며, 이 과정에서 많은 사용자 오류가 식별되고 제거됩니다. 이러한 방식으로 편집기는 파일의 구문 제어를 제공합니다.

편집기에는 다른 중요한 디버깅 도구도 있습니다. 이를 통해 파일 텍스트에 중단점이라는 특수 표시를 설정할 수 있습니다. 해당 값에 도달하면 계산이 일시 중지되고 사용자는 계산의 중간 결과(예: 변수 값)를 평가하고 루프의 올바른 실행 등을 확인할 수 있습니다. 마지막으로 편집기를 사용하면 다음을 수행할 수 있습니다. 텍스트 형식으로 파일을 작성하고 MATLAB 파일 시스템에서 작업을 영구화합니다.

편집기/디버거 작업을 쉽게 하기 위해 프로그램 라인에는 순차적으로 번호가 매겨져 있습니다. 편집기는 다중 창입니다. 각 프로그램의 창은 탭으로 구성되어 있습니다. 디버거 편집기를 사용하면 변수 값을 쉽게 볼 수 있습니다. 이렇게 하려면 마우스 커서를 변수 이름 위로 이동하고 누르고 있으면 변수 이름과 해당 값이 포함된 도구 설명이 나타납니다.

M-파일 편집기의 매우 편리한 기능은 다음과 같습니다. 일부 명령 실행.이렇게 하려면 상황에 맞는 메뉴나 기본 메뉴텍스트에서 선택 평가 명령을 사용하거나 간단히 기능 키를 사용하세요. , 선택한 프로그램 텍스트를 실행할 수 있습니다.

쌀. 1. M파일 편집창.

1.2. M-파일의 종류. 파일 프로그램.

MATLAB에는 두 가지 유형의 M 파일이 있습니다. 일련의 명령이 포함된 스크립트 M 파일과 사용자 정의 함수를 설명하는 함수 M 파일입니다.

파일 프로그램은 M-파일의 가장 간단한 유형입니다. 입력 또는 출력 인수가 없으며 런타임에 존재하는 변수에 대해 작동하거나 새 변수를 생성할 수 있습니다. 이전 섹션을 읽을 때 mydemo 파일 프로그램을 작성했습니다. 파일 프로그램에 선언된 모든 변수는 실행 후 작업 환경에서 사용할 수 있게 됩니다. 그림 1의 목록에 표시된 mydemo 파일 프로그램을 실행합니다. 작업 공간 창으로 이동하여 M 파일에 입력된 모든 변수가 작업 공간에 나타나는지 확인하십시오. M 파일 실행 중에 생성된 모든 변수는 완료 후에도 작업 환경에 남아 있으며 다른 파일 프로그램 및 명령줄에서 실행되는 명령에서 사용할 수 있습니다.

파일 프로그램을 시작하는 방법에는 두 가지가 있습니다.

1. 위에서 설명한 대로 M-파일 편집기에서.

2. 명령줄 또는 기타에서 M 파일의 이름(확장자 없음)이 명령으로 사용되는 프로그램 파일입니다. 특히 생성된 파일 프로그램을 향후 반복적으로 사용할 경우 두 번째 방법을 사용하는 것이 훨씬 더 편리합니다. 생성된 실제 M 파일은 MATLAB이 이해하는 명령이 됩니다.

모든 그래픽 창을 닫고 명령줄에 mydemo를 입력하면 mydemo.m 프로그램 파일의 명령에 해당하는 그래픽 창이 나타납니다. mydemo 명령을 입력하면 MATLAB은 다음 작업을 수행합니다.

1. 입력한 명령이 이름인지 확인합니다.정의된 변수 중 하나

V 근무 환경. 변수를 입력하면 해당 값이 표시됩니다.

2. 입력이 변수가 아닌 경우 MATLAB은 내장 함수 중에서 입력된 명령을 찾습니다. 명령이 내장 함수로 판명되면 실행됩니다.

3. 입력값이 변수나 내장 함수가 아닌 경우 MATLAB은 검색을 시작합니다.팀 이름과 확장자 m이 포함된 M 파일입니다. 검색은 다음으로 시작됩니다. 현재 디렉터리(현재 디렉토리); M 파일이 여기에 없으면 MATLAB은 검색 경로(Path)에 지정된 디렉터리를 찾습니다. (현재 디렉터리를 설정하려면 도구 모음에서 같은 이름의 선택 창을 사용하거나 cd 명령을 사용할 수 있습니다. 검색 경로 설정은 다음과 같이 수행됩니다.

파일 메뉴 명령의 경로 설정 명령 사용 또는 addpath 명령 사용).

위 작업 중 어느 것도 성공하지 못한 경우 명령 창에 메시지가 표시됩니다(예: 오류 발생).

MATLAB 검색 순서는 자신의 파일 프로그램을 M 파일에 저장할 때 파일 프로그램의 이름을 올바르게 지정하는 것이 매우 중요함을 시사합니다. 첫째, 해당 이름은 MATLAB의 기존 함수 이름과 동일해서는 안 됩니다. 이름이 사용되었는지 여부는 존재 함수를 사용하여 확인할 수 있습니다.

둘째, 파일 이름은 숫자, "+" 또는 "-" 기호 또는 표현식 입력 시 MATLAB이 오류로 해석할 수 있는 문자로 시작해서는 안 됩니다. 예를 들어, 프로그램 파일 5prog.m을 사용하여 M 파일 이름을 지정한 경우 편집기 메뉴에서 실행하거나 오류 메시지를 받게 됩니다. 이는 놀라운 일이 아닙니다. MATLAB에서는 prog 변수를 사용하여 산술 표현식을 계산하려면(또는 행 벡터 prog의 첫 번째 요소로 5를 추가하려면) 5 + prog(또는 5, prog)를 사용해야 하기 때문입니다. 따라서 올바른 이름은 prog5.m(또는 최소한 p5rog.m)이지만 문자로 시작해야 합니다.

다음을 사용하여 잘못된 이름을 가진 M 파일의 선택된 명령(모든 명령을 선택할 수 있음)을 실행하는 경우 주의하십시오. , 그러면 오류가 발생하지 않습니다. 실제로 명령의 순차적 실행이 있으며 파일 프로그램의 작동이 아니라 명령줄에서 호출하는 것과 다르지 않습니다.

또 다른 매우 흔한 실수는 파일 프로그램의 이름을 지정할 때인데, 이는 언뜻 보기에는 설명할 수 없는 결과를 가져옵니다. 즉, 프로그램은 한 번만 실행됩니다. 다시 실행해도 프로그램이 실행되지 않습니다. mydemo.m 파일에 저장한 목록 5.1의 예제 파일 프로그램을 사용하여 이 상황을 살펴보겠습니다. 파일 이름을 x.m으로 바꾼 다음 작업 공간 변수 브라우저 창이나 명령줄에서 모든 작업 공간 변수를 삭제합니다.

>> 모두 지우기

예를 들어 편집기에서 다음을 클릭하여 파일 프로그램을 실행합니다. . 두 개의 그래프가 포함된 그래픽 창이 나타나며 문제를 예고하는 것은 없습니다. 이제 그래픽 창을 닫고 프로그램을 다시 실행하십시오. 그래픽 창은 더 이상 생성되지 않지만 위에 주어진 MATLAB 검색 알고리즘의 첫 번째 지점에 따라 arrayx의 값이 명령 창에 표시됩니다. 파일 프로그램 이름을 선택할 때 이러한 상황을 고려해야 합니다. 똑같이 중요한 질문은 MATLAB 검색 알고리즘의 세 번째 지점인 현재 카탈로그 및 검색 경로와 관련되어 있습니다. 일반적으로 기본 M 파일은 사용자 디렉터리에 저장됩니다. MATLAB이 M 파일을 찾으려면 M 파일의 위치를 ​​나타내도록 경로를 설정해야 합니다.

1.3. 파일 기능.

위에서 설명한 파일 프로그램은 일련의 MATLAB 명령이며 입력 또는 출력 인수가 없습니다. MATLAB에서 계산 문제를 해결하고 자신만의 응용 프로그램을 작성하려면 입력 인수에 대해 필요한 작업을 수행하고 결과를 출력 인수로 반환하는 파일 함수를 프로그래밍해야 하는 경우가 많습니다. 입력 및 출력 인수의 수는 해결 중인 문제에 따라 다릅니다. 입력 인수와 출력 인수는 하나만 있을 수도 있고 둘 다 여러 개 있을 수도 있고 입력 인수만 있을 수도 있습니다.

입력 또는 출력 인수가 없을 수도 있습니다. 이 섹션에는 파일 기능을 사용하는 방법을 이해하는 데 도움이 되는 몇 가지 간단한 예가 포함되어 있습니다. 파일 프로그램뿐만 아니라 파일 기능도 M-파일 편집기에서 생성됩니다.

하나의 입력 인수를 갖는 파일 함수입니다.

계산에 함수 값을 자주 사용해야 한다고 가정해 보겠습니다.

-xx 2

파일 함수를 한 번 작성한 다음 주어진 인수에 대해 이 함수를 계산하는 데 필요할 때마다 호출하는 것이 합리적입니다. 이렇게 하려면 M 파일 편집기에서 새 파일을 열고 다음 텍스트를 입력해야 합니다.

함수 f = myfun(x)

첫 번째 줄의 function이라는 단어는 이 파일에 함수 파일이 포함되어 있음을 지정합니다. 첫 번째 줄은 함수 헤더,여기에는 함수 이름과 입력 및 출력 인수 목록이 포함됩니다. 입력 인수는 함수 이름 뒤에 괄호 안에 기록됩니다. 이 예에는 입력 인수 x가 하나만 있습니다. 출력 인수 f는 함수 헤더의 등호 왼쪽에 지정됩니다. 파일 함수 이름을 선택할 때 MATLAB에서 사용 중인 이름과 충돌하지 않도록 주의해야 합니다. 위에서 비슷한 질문인 프로그램 파일을 고유한 이름을 가진 파일에 저장하는 방법에 대해 논의했습니다. 파일 함수의 이름을 지정하기 위해 존재 함수를 호출하는 것과 동일한 접근 방식을 사용할 수 있습니다.

헤더 뒤에는 파일 함수의 본문이 배치됩니다. 즉, 입력 변수에서 출력 변수 값을 얻기 위한 알고리즘을 구현하는 하나 또는 여러 연산자(상당히 많을 수 있음)가 배치됩니다. 이 예에서 알고리즘은 간단합니다. x가 주어지면 산술 표현식이 계산되고 결과가 f에 기록됩니다.

이제 작업 디렉터리나 MATLAB에 알려진 다른 위치에 파일을 저장해야 합니다. 파일 메뉴에서 저장 또는 다른 이름으로 저장...을 선택하면 기본적으로 myfun 함수 이름과 일치하는 파일 이름이 제안됩니다. 이 제안된 이름으로 함수 파일을 저장해야 합니다. 이제 생성된 함수는 내장된 sin, cos 및 기타 함수와 동일한 방식으로 사용할 수 있습니다(예: 명령줄에서).

>> y=myfun(1.3) y =

myfun 파일 함수를 생성할 때 할당문을 세미콜론으로 종료하여 f 값이 명령 창에 인쇄되지 않도록 억제했습니다. 이것이 완료되지 않으면 y=myfun(1.3) 을 호출할 때 표시됩니다. 일반적으로 파일 함수 내의 중간 계산 결과를 명령 창에 인쇄하지 않는 것이 가장 좋습니다.

이전 예에 표시된 파일 함수에는 한 가지 중요한 단점이 있습니다. 내장 함수를 사용할 때처럼 배열 값을 반환하지 않고 배열에서 함수 값을 계산하려고 하면 오류가 발생합니다.

>>x=;

>> y=myfun(x)

??? ==> 사용 중 오류 발생 ^ 행렬은 정사각형이어야 합니다.

==> C:\MATLAB6p5\work\myfun.m에 오류가 있습니다.

2번째 줄 ==> f = exp(-x)*sqrt((x^2 + 1)/(x^4 + 0.1));

분명히 이 오류를 방지하려면 요소별 작업을 사용해야 합니다. 특히 함수가 올바르게 작동하려면 함수 텍스트를 다음 형식으로 다시 작성해야 합니다.

함수 f = myfun(x)

f = exp(-x).*sqrt((x.^2 + 1)./(x.^4 + 0.1));

이제 myfun 함수에 대한 인수는 숫자, 값의 벡터 또는 행렬이 될 수 있습니다. 예를 들면 다음과 같습니다.

>>x=;

>> y=myfun(x)

myfun 함수 호출 결과를 저장하는 y 변수는 자동으로 필요한 크기의 벡터가 됩니다.

함수를 사용하는 예를 살펴보겠습니다. 파일 프로그램이나 명령줄을 사용하여 세그먼트에 myfun 함수를 플로팅합니다.

>> x=0:0.5:4;

>> y=myfun(x);

>>플롯(x,y)

MATLAB을 사용하여 계산 문제를 해결하려면 당면 작업에 적합한 파일 함수(예: 미분 방정식 시스템의 우변 또는 피적분 함수)를 프로그래밍할 수 있어야 합니다.

이제 파일 함수를 사용하여 어떻게 수학 함수를 더 쉽게 시각화할 수 있는지에 대한 간단한 예를 하나 살펴보겠습니다. 방금 플롯을 사용하여 그래프를 그렸습니다. 벡터 y를 계산하기 위해 myfun을 호출할 필요가 없다는 점에 유의하십시오. 즉시 이에 대한 표현식을 작성한 다음 플롯에 parx 및 y를 지정할 수 있습니다. myfun의 파일 함수를 사용하면 파일 함수의 이름(아포스트로피로) 또는 이에 대한 포인터(함수 이름 앞에 @ 연산자 사용) 및 경계를 지정해야 하는 특수 함수 fplot에 액세스할 수 있습니다. 플롯할 세그먼트(두 요소의 벡터)

>> fplot("myfun", )

>> fplot(@myfun, )

인수 단계를 자동으로 선택하는 fplot 함수용 알고리즘을 추가하여 연구 중인 함수의 급격한 변화 영역에서 인수 단계를 줄여 사용자에게 데이터를 잘 표시할 수 있도록 해야 합니다.

여러 입력 인수가 있는 파일 함수입니다.

여러 입력 인수를 사용하여 파일 함수를 작성하는 것은 사실상 단일 인수를 작성하는 것과 다르지 않습니다. 모든 입력 인수는 쉼표로 구분된 목록에 배치됩니다. 다음 예에는 3차원 점의 반경 벡터 길이를 계산하는 파일 함수가 포함되어 있습니다.

공간 x 2 + y 2 + z 2 .

함수 r = 반경3(x,y,z) r = sqrt(x.^2 + y.^2 + z.^2);

>> R = 반경3(1, 1, 1)

MATLAB을 사용하면 여러 인수를 갖는 함수 외에도 여러 값을 반환하는, 즉 여러 출력 인수를 갖는 함수를 생성할 수 있습니다.

여러 출력 인수가 있는 파일 함수입니다.

여러 출력 인수가 있는 파일 함수는 여러 값을 반환하는 함수(수학에서는 벡터 함수라고 함)를 평가할 때 유용합니다. 출력 인수는 쉼표로 구분되어 출력 인수 목록에 추가되며 목록 자체는 대괄호로 묶입니다. 다음 예에서는 초 단위로 지정된 시간을 시, 분, 초로 변환하는 hms 파일 함수를 제공합니다.

함수 = hms(초) 시간 = 층(초/3600);

여러 출력 인수를 사용하여 파일 함수를 호출하는 경우 결과는 적절한 길이의 벡터에 기록되어야 합니다.

>> = hms(10000) H =

이 함수를 사용할 때 출력 매개변수를 명시적으로 지정하지 않으면 함수 호출 결과는 첫 번째 출력 인수만 됩니다.

>> hms(10000) ans =

출력 인수 목록이 비어 있는 경우, 즉 헤더는 function myfun(a, b) 또는 function = myfun(a, b) 와 같습니다.

그러면 파일 함수는 어떤 값도 반환하지 않습니다. 이러한 기능은 때때로 유용할 때도 있습니다.

MATLAB 함수에는 help fplot과 같은 도움말 명령을 사용하여 해당 함수에 대한 정보를 얻을 수 있는 기능이라는 또 다른 유용한 특성이 있습니다. 주석 줄을 사용하여 이 속성을 사용자 고유의 파일 기능에 할당할 수도 있습니다. 헤더 뒤와 함수 본문 앞의 모든 주석 줄 또는 빈 줄은 help 명령을 사용하여 명령 창에 인쇄됩니다. 예를 들어 함수의 경우 힌트를 만들 수 있습니다.

함수 = hms(초) %hms - 초를 시, 분, 초로 변환

% hms 함수는 초를 변환하는 함수입니다.

% 시간, 분, 초로 표시됩니다.

% = hms(초)

시간 = 층(초/3600);

분 = 층((초 - 시간*3600)/60); 초 = 초 - 시*3600 - 분*60;

1.4. 하위 기능.

또 다른 유형의 기능인 하위 기능을 고려해 보겠습니다. 하위 기능의 사용은 알고리즘의 일부를 독립적인 기능으로 분리하는 것을 기반으로 하며, 그 텍스트는 기본 기능과 동일한 파일에 포함됩니다. 예를 들어 살펴보겠습니다.

기능이 간단하다;

% 주 기능 a = 2*pi;

fl = f(1.1, 2.1) f2 = f(3.1, 4.2)-a f3 = f(-2.8, 0.7)+a

함수 z = f(x, y)% 하위 함수

z = x^3 - 2*y^3 - x*y + 9;

첫 번째 간단한 기능은 주요 기능 simple.m에서는 사용자가 예를 들어 명령줄에서 simple을 호출하면 실행되는 문입니다. 주 함수에서 하위 함수 f를 호출할 때마다 하위 함수에 있는 연산자로 전환되고 이어서 주 함수로 돌아갑니다.

함수 파일에는 자체 입력 및 출력 매개변수가 있는 하나 이상의 하위 함수가 포함될 수 있지만 주 함수는 하나만 있을 수 있습니다. 새로운 하위 기능의 제목은 이전 하위 기능의 끝을 나타내는 표시이기도 합니다. 주 기능은 입력 및 출력 매개변수를 통해서만 하위 기능과 정보를 교환합니다. 하위 함수와 주 함수에 정의된 변수는 로컬이며 해당 함수 범위 내에서 사용할 수 있습니다.

모든 M 파일 함수에 공통적으로 사용되는 변수의 한 가지 가능한 용도는 공백으로 구분된 변수 이름 목록과 함께 global을 사용하여 주 함수와 하위 함수의 시작 부분에서 이러한 변수를 전역으로 선언하는 것입니다.

2. 프로그래밍 언어의 구성을 제어합니다.

이전 두 장에서 작성한 파일 기능과 파일 프로그램은 프로그램의 가장 간단한 예입니다. 여기에 포함된 모든 MATLAB 명령이 실행됩니다. 순차적으로.더 심각한 문제에는 작업이 주기적으로 반복되고 특정 조건에 따라 프로그램의 다른 부분이 실행되는 프로그램이 필요합니다. 이 장에서는 파일 프로그램과 파일 함수를 모두 작성할 때 사용할 수 있는 MATLAB 프로그래밍 언어의 제어 구조에 대해 설명합니다.

2.1. 루프 연산자.

유사하고 반복적인 작업은 for 및 while 루프 문을 사용하여 수행됩니다. for 루프는 주어진 횟수의 반복 작업을 수행하도록 설계되었으며, awhile 루프는 사전에 횟수를 알 수 없지만 루프를 계속하는 조건을 알고 있는 작업을 위해 설계되었습니다.

for 루프.

for의 사용법은 다음과 같습니다.

개수 = 시작:단계:최종

MATLAB 명령

여기서 count는 루프 변수, start는 초기 값, final은 최종 값, astep은 루프가 들어갈 때마다 count가 증가하는 단계입니다. count 값이 final보다 커지자마자 루프가 종료됩니다. 루프 변수는 정수 값뿐만 아니라 모든 부호의 실수 값도 사용할 수 있습니다. for 루프를 사용하는 예는 다음과 같습니다. x에 대한 곡선군의 그래프를 표시한다고 가정합니다.

-0.1에서 -0.1까지의 매개변수 값에 대해 매개변수a에 따라 함수 y(x,a)= e −ax sinx로 지정됩니다.

0.02씩 0.1씩 증가합니다. 물론 y(x, a)를 순차적으로 계산하고 다양한 값에 대한 그래프를 작성할 수 있지만 for 루프를 사용하는 것이 훨씬 더 편리합니다. 프로그램 파일 텍스트:

숫자 %는 그래픽 창을 생성합니다.

x = 0:파이/30:2*파이; %는 인수 값의 벡터를 계산합니다.

% 매개변수 값을 통한 루핑 a = -0.1:0.02:0.1의 경우

% 현재 값에 대한 함수 값의 벡터를 계산합니다...

매개변수

y = exp(-a*x).*sin(x); % 함수 그래프에 보류 추가

플롯(x, y) 끝

이 파일 프로그램을 실행하면 그림 3과 같은 그래픽 창이 나타납니다. 2에는 필요한 곡선군이 포함되어 있습니다.

쌀. 2. 곡선군.

For 루프는 서로 중첩될 수 있지만 중첩 루프의 변수는 달라야 합니다. 중첩 루프는 행렬을 채우는 데 유용합니다. 힐베르트 행렬 생성의 예:

a = 0(n); i = 1:n인 경우

j = 1:n의 경우

a(i, j) = 1/(i+j-1);

이 섹션을 마무리하기 위해 우리는 for 루프의 한 가지 기능을 더 언급합니다. 이 기능은 일정한 단계로 실제 루프 카운터를 지정하는 기능과 함께 for 루프를 매우 보편적으로 만듭니다. 값 배열을 루프 변수 값으로 사용할 수 있습니다.

개수 = A

MATLAB 명령

A가 행 벡터인 경우 count는 루프에 들어갈 때마다 해당 요소의 값을 순차적으로 가져옵니다. 2차원 배열 A의 경우 루프의 i번째 단계에서 count에는 A(:,i) 열이 포함됩니다. 물론 A가 열 벡터인 경우 루프는 A의 카운트 값으로 한 번만 실행됩니다.

for 루프는 특정 유한 개수의 작업을 수행할 때 유용합니다. 더 유연한 while 루프를 사용하여 구현할 수 있는 반복 횟수를 알 수 없는 알고리즘이 있습니다.

while 루프.

while 루프는 반복 횟수를 미리 알 수 없고 일부 조건의 충족에 따라 결정되는 경우 동일한 유형의 작업 반복을 구성하는 데 사용됩니다. sin(x) 계열 확장의 예를 고려해 보겠습니다.

x 2k + 1

S(x)= ∑(− 1)

(2k + 1) !

k = 0

물론 무한대까지 합산하는 것은 불가능하지만 예를 들어 10-10과 같이 주어진 정확도로 금액을 누적할 수 있습니다. 분명히 이 경우 계열의 항 수를 알 수 없으므로 for 연산자를 사용하는 것은 불가능합니다. 해결책은 루프 조건이 충족되는 동안 실행되는 while 루프를 사용하는 것입니다.

while 루프 반복 조건

MATLAB 명령

안에 이 예에서 주기를 반복하기 위한 조건은 현재 항의 모듈러스입니다.

x 2k + 1 (2k + 1) ! 10-10 이상. 다음을 기반으로 계열의 합계를 계산하는 mysin 파일 함수의 텍스트입니다.

재발 관계:

k - 1

2k (2k + 1)

함수 s = 마이신(x)

% 계열 확장을 통한 사인 계산

% 사용법: y = mysin(x),-pi< х < pi

% k = O에 대한 합의 첫 번째 항 계산 k = 0;

% 보조변수 계산

절대(u) > 1.0e-10 k = k + 1;

u = -u* x2/(2*k)/(2*k + 1); s = s + 유;



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: