게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[질문]MATLAB으로 간단하게 코딩중인 비전공자입니다.
게시물ID : programmer_18372짧은주소 복사하기
작성자 : sjjman
추천 : 0
조회수 : 523회
댓글수 : 6개
등록시간 : 2016/09/07 16:02:35
옵션
  • 본인삭제금지
저는 토목과 박사 수료생으로 학위논문을 위해 MATLAB을 이용하여 간단하게 코딩중입니다.
하지만 제가 초보이다 보니 너무 효율이 떨어지는 코딩을 한 것 같아서 효율을 높이는 방법을 여쭙고 싶습니다.

file.txt에 있는 내용을 매트릭스A로 불러와서
14번째 열에있는 값에 따라
B1에서 B7까지 (필요시 B10이상으로도 늘려야함) 구분하여 저장하려합니다.
예를 들어 매트릭스A의 1행 14열 값이 1인 값들만 모아서 B1으로,
매트릭스A의 1행 14열 값이 2인 값들만 모아서 B2로 만드는 것이죠.
그래서 아래와 같이 구성했는데, 연산시간이 너무 올래걸리고,
매트릭스A의 14번째 열 값이 7이상으로 커지면 인위적으로 추가해야한다는 불편함이 있습니다.
이를 효율적으로 고칠 수 있는 방법 없을가요??

비전공자이고, 제가 배워본 프로그래밍은 대학교1학년때 배운 C언어 기초강좌가 다였기에
이쪽으로는 무지해서 도움을 요청합니다.

----------------------------------------------------------------
A = load( 'file.txt' );
B1 = [];
B2 = [];
B3 = [];
B4 = [];
B5 = [];
B6 = [];
B7 = [];
n = length(A);
for i = 1:n
    if A(i, 14) == 1;
        B1 = [B1; A(i, 8), A(i, 2)];
    elseif A(i, 14) == 2;
        B2 = [B2; A(i, 8), A(i, 2)];
    elseif A(i, 14) == 3;
        B3 = [B3; A(i, 8), A(i, 2)];
    elseif A(i, 14) == 4;
        B4 = [B4; A(i, 8), A(i, 2)];
    elseif A(i, 14) == 5;
        B5 = [B5; A(i, 8), A(i, 2)];
    elseif A(i, 14) == 6;
        B6 = [B6; A(i, 8), A(i, 2)];
    else A(i, 14) == 7;
        B7 = [B7; A(i, 8), A(i, 2)];
    end
end
----------------------------------------------------------------
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호