728x90
300x250

[Matlab 2010] 1. 인터페이스

Matlab 2010 인터페이스는 다음과 같습니다.

반응형
728x90
300x250

[Matlab 2010] Matlab에 대하여 소개합니다.

Matlab
은?
- 수치 해석 및 프로그래밍 환경을 제공하는 프로그램이다.

Matlab의 용어는?
- Mathmatics + Laboratory 라는 두 단어의 합성이다.

Matlab을 만든 회사는?
- Mathworks에서 만들었다.

Matlab의 뼈대는?
- C언어이다.

Mathlab의 강점?
(수치해석) : 행렬을 이용한 처리가 용이, 함수와 데이터의 그래프 표현이 가능
(C언어의 이식성) : 다른 프로그래밍 언어와의 접목
(수식처리 시스템으로도 사용가능) : 수치 해석에 특화된 소프트웨어이지만 메이플 심볼릭 엔진과의 연동을 가능케하는 툴박스(추가 기능)를 적용하면 완전한 컴퓨터 수식처리 시스템으로도 기능한다.
(알고리즘 적용 가능)

반응형

'소프트웨어(SW) > Mathwork - Matlab' 카테고리의 다른 글

[Matlab 2010] 4. 행렬의 연산 -2-  (13) 2010.06.12
[Matlab 2010] 3. 행렬의 연산 -1-  (13) 2010.06.11
[Matlab 2010] 2. 행렬 구현  (13) 2010.06.11
[Matlab 2010] 1. 인터페이스  (13) 2010.06.11
[Matlab 2010] 개요  (6) 2010.06.11
728x90
300x250

Matlab 2010 개요

매트랩 2010을 사용하는 방법에 대해서 몇 가지 소개합니다.
글을 기획하고자 하는 목표는 크게 9가지의 항목을 염두해두고 있습니다.

목차
1. 행렬
2. 그래프
3. 함수 생성하기
(m-file)
4. 파일 입출력
5. 수치해석
(Graph(그래프) + Function(함수), Differential equation(미분 방정식), Abel's Sum Formula(적분 기법), Gauss Elimination)
6. Serial 통신
7. GUI
8. 응용 시뮬레이션 (simulink,제어,주파수 영역 분석,그래픽 등)
9. 프로그래밍

현실적으로 다 하기는 어려울 것 같습니다.
많은 시간이 요구됩니다.

아무래도 그래프까지 도달하면 충분히 매트랩이라는 프로그램에 대해서 많이 소개했다고 봅니다.
가능하면 두루 소개할 수 있으면 소개하겠으나, 나는 매트랩(Matlab)을 맨날 사용하는 사람이 아닙니다.

아무쪼록 좋은 글이 될 수 있도록 많은 노력을 하겠습니다.

참고로 학생에 한해서 배포하고 있는 것으로으로 알고 있는데 정확한 것은 한번 찾아보시기 바랍니다.

반응형
728x90
300x250

[C언어] Const를 사용하는 이유

상수를 사용하는 이유에 대해서 짧게 적어봤습니다.

1. C++에서 처음 등장
-> C언어 표준을 재정립하는 과정에서 C언어에도 포함됨.

수치가 변하면 안되는 값들
예) PI = 3.14(이하 소수점 생략하고 3.14만 고정진리로서 계산해야할 때)

반응형
728x90
300x250

[C언어] 포인터의 상수화 const

이 글은 소개하는 글은 아니고, 편안하게 생각을 정리해보기 위해서 작성하였습니다.


가정 1 : const int ……(포인터 생략)

문제 1 : const int는 무슨 변화를 일으키는 것 일까?
-> 결과 : 주소 변경만 허용

의문점이 생길 수 있는 가정 조건)
* const int * 꼴인데, int const * 꼴로 하면 어떻게 처리 될 것인가?

가정 2 : int * const ……(포인터 생략)
-> 결과 : 상수로서 처리만 가능.

반응형
728x90
300x250

[C언어] C언어 널포인터를 활용한 출력 결과

ptr이 예를 들어 x0000 주소라고 한다면, ptr의 값을 1증가 시킬 때 그 다음 번지는 무엇일까?


 #include <stdio.h>

 int main()
 {

int *ptr1 = 0;
char *ptr2 = 0;
double *ptr3 = 0;

printf("%d, %d, %d \n", ptr1++, ptr2++, ptr3++);
printf("%d, %d, %d \n", ptr1, ptr2, ptr3);

return 0;

 }
 

출력 : 0, 0, 0
         4, 1, 8


'포인터 연산에 따른 실질적인 값의 변화는 포인터 타입에 따라 다르다'는 결과를 알 수 있다.
int형 변수는 4바이트이다.
int *타입의 포인터 변수 값을 하나 증가시키면 4가 증가한다.
char형 변수는 1바이트이다.
char *타입의 포인터 변수 값을 하나 증가시키면 1이 증가한다.

즉,
x0001의 주소의 다음을 가르키는 주소는 x0004 이다.

반응형
728x90
300x250

[C언어] N! 팩토리얼을 이용한 반복문과 재귀함수

반복문 for, while, do while을 쉽게 이해 및 생각해보기 위해 몇자 적었습니다.
! 팩토리얼을 활용하여 반복문을 작성하겠습니다.


 


 

 

준비물 : 연습장, PC, Visual C++


반복문 연습 문제)
변수 조건)
int i = 1, int n = 4, unsigned long nRes, unsigned long factorial;

1. N! 팩토리얼을 순서도로 설계하시요.



2. 반복문과 함수 형식을 사용하여 구현하시요.

출력값 : 4! = 24

 

 



3. 재귀함수로 구현하시요.

출력값 : 4! = 24



반응형
728x90
300x250

[C언어] main()함수의 인자 활용(명령행 인자 : argc, argv)

C언어 책을 보면 Argv, Argc라는 것이 구구절절 설명되어 있다. 이 부분이 설명되어 있는 영역의 주제는 대분류로 보자면 '함수'영역에 있으며 세부분류에 보면 'main()함수의 인자 활용'이라는 곳에 나오는 부분이다.
나는 먼저 인자라는 말을 '조건'이나 '발생하는 원인 요소'로 바꾸고 설명하겠다.

우리가 CUI를 올리든 GUI를 올리든 기본적으로 발생하는 함수의 조건은 main()이다.
main() 또한 역시나 요소(factor)가 존재한다. 그렇지만 main()함수는 구성하는 각각의 요소가 명확히 정해져 있지 않다.

선수 지식 : 포인터나 배열


1. main()함수를 구성하고 있는 요소가 명확하지 않는 이유는 무엇일까?

그 이유는 main()함수가 운영체제에 의해 실행되는 진입점 역할을 하므로 프로그램의 시작과 종료시 다양한 시스템에서의 운영 환경을 수용할 수 있도록 유연해야만 하기 때문이다.

오늘 실습은 main()함수의 인자 활용이라는 주제이기 때문에 argc, argv라는 함수를 활용하는 실습을 해보겠다.
main()함수에서 argc, argv에 대한 다음과 같은 형태의 원형을 지원한다.
int main(int argc, char *argv[]);

콘솔에서는 다음과 같이 사용된다.




2. Argc, Argv를 담고 있는 헤더는 무엇인가?

#include <stdlib.h>

용어 정리)
1. Argc는 무엇인가?
Argument Count
명령행 개수

2. Argv는 무엇인가?
Argument Vector
명령행 메모리 목록(배열)


3. Argc 단독 사용

#include <stdio.h>
#include <stdlib.h>

int main(int argc)
{

 printf("%d", argc);

}



태스트 결과


1번 : 'ch02_01' 입력했을 때?
출력값 : 1
2번 : 'ch02_01 ' 입력했을 때?
출력값 : 1
설명 : [0][0]은 기본값 ch02_01이므로 1
더불어 파일명이기 때문에 자신 스스로임
3번 : 'ch02_01 1' 입력했을 때?
출력값 : 2
설명 : [1][0]
4번 : 'ch02_01 12' 입력했을 때?
출력값 : 2
설명 : [1][0],[1][1]
5번 : 'ch02_01 12 ' 입력했을 떄?
출력값 : 2
설명 : [1][0], [1][1], [1][2]
빈칸은 \n으로 메모리 주소에 기억이 됩니다.
6번 : 'ch02_01 12 3' 입력했을 때?
출력값 : 3
설명 : [2][0]



4. Argc, Argv

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

 printf("[0][0]\n");
 printf("테스트 1번:%d %c\n", argc, argv[0][0]);

}



태스트 결과


설명 : [0][0]이므로 1개, c는 자기 자신(파일명)을 메모리에 주소로서 처리하고 있음.
예) [0][0] = c, [0][1] = h, [0][2] = 0

보충 설명 : char *argv[]를 char **argv로 쓸 수 있음.
포인터의 포인터(**)는 * 포인터의 주소를 저장하기 위해 사용.
배열로서 해석될 수 있는 영역임.


5. 참고) Argc, Argv, Env 활용


Env는 Environment의 약자로서 환경을 의미합니다.
환경설정 내용을 보기위해 사용하는 인자입니다.
main()함수에서 다음과 같은 형식의 원형으로 사용됩니다.

int main(int argc, char **argv, char **env)

소스

#include <stdio.h>

int main(int argc, char **argv, char **env)
{
 for(;env;env++)
  puts(*env);
}



태스트 결과

반응형

+ Recent posts