2010-04-25 3 views
0

GUI를 생성하고 uiimport를 사용하여 matlab 작업 공간으로 데이터 세트를 가져 오면이 가져온 데이터를 matlab의 다른 함수로 전달하고 싶습니다 ...이 가져온 데이터 세트를 다른 사용자에게 전달하려면 어떻게합니까? 함수 .... 나는 diz를하고 ... 시도했지만 그것을 취할 수 없다 .... 그것을 matlab 작업 영역에서 데이터를 선택하지 .... 어떤 아이디어 ?? 다음 기능 되었 다음이작업 공간에서 함수로 데이터 전달

dataset = uiimport(file_input); 

같은 변수에

uiimport(file_input); 

과 :

[file_input, pathname] = uigetfile(... 
{'*.txt', 'Text (*.txt)'; ... 
'*.xls', 'Excel (*.xls)'; ... 
'*.*', 'All Files (*.*)'}, ... 
'Select files'); 

uiimport(file_input); 
M = dlmread(file_input); 
X = freed(M); 

답변

0

스크립트에서 세 가지 방법으로 파일을 읽을 수 있습니다. 파일 형식에 따라 하나를 선택하십시오. 하지만 먼저 나는 경로와 파일 이름을 결합 할 것이다 : 사용자가 데이터를 읽을 수있는 방법을 변경할 수 있으며, 변수 이름은 파일 이름과 사용자에 의존하기 때문에

file_input = fullfile(pathname,file_input); 

나는, 스크립트에서 UIIMPORT를 사용하지 않을 것입니다.

DLMREAD을 사용하면 파일에서 수치 데이터를 읽을 수만 있습니다.

M = dlmread(file_input,'\t',1,1); 

왼쪽으로 한 행을 건너 뛸 수있는 행 또는 열 수를 건너 뛸 수 있습니다. 또는 Excel 스타일의 종류로 범위를 정의 할 수 있습니다. 자세한 내용은 DLMREAD 설명서를 참조하십시오.

DLMREAD에 전달하는 파일 이름은 문자열이어야합니다. 파일 핸들이나 데이터를 전달하지 마십시오. 문자열이 아니면 "Filename must be a string"을 얻습니다. 쉬운.

FREAD은 이진 파일에서 데이터를 읽습니다. 정말로해야한다면 문서를보십시오.

파일에서 데이터를 읽는 다른 많은 기능이 있습니다. 문제가 계속되면 파일 형식의 예를 보여 주므로 가장 좋은 방법을 제안 할 수 있습니다.

1

나는 당신이이 문장의 결과를 할당 할 필요가 있다고 생각

M = dlmread(dataset); 

이것은 매우 바입니다. Matlab에 대한 온라인 도움말 및 일부 설명서를 읽는 것이 유용하다는 것을 알게되었습니다. 당신이 그것을했을 때 당신은 아마 이것의 더 빠르고 더 빠른 방법을 발견 할 것이다.

EDIT : 음, @Tim, 다른 모든 것이 RTFM에 실패하면. 그렇게 했어. 이전의 대답이 틀렸다. dlmread으로 전달해야하는 것은 읽을 파일의 이름입니다. 따라서 uiimport 또는 dlmread을 사용하여 파일을 읽으십시오. 어떤 파일을 사용하는지는 입력 파일의 형식과 수행하려는 작업에 따라 다릅니다. 그래서 RTFM으로 가면 똑같이 할 것입니다. 그래도 문제가 해결되지 않으면 질문을 업데이트하고 파일 내용에 대한 세부 정보를 제공하십시오.

+1

Matlab 설명서는 잘 작성되어 있으므로 명확하게 이해해야합니다. 읽지 않으려면 다음과 같은 여러 비디오 자습서 중 하나를 시청할 수도 있습니다. http://www.mathworks.com/support/2010a/matlab/7.10/demos/WritingAMATLABProgram.html – Jonas

+0

.. .. 나는 이미 dat을 시도했다 .... 몇 가지 오류가있어 !!! – Tim

+0

??? ==> dlmread at 55 = 사용시 오류 파일 이름은 문자열이어야합니다. Datz 나는 무엇을 얻었 는가 dlmread를 사용해 보았습니다. – Tim

관련 문제