2016-10-14 2 views
0

일부 데이터가 .txt 파일에 있습니다. 쉼표로 구분됩니다. 예를 들어.txt 파일에서 데이터 열을 추출하는 방법 MATLAB

:

1.4,2,3,4,5 
2,3,4.2,5,6 
24,5,2,33.4,62 

당신은 무엇을 첫 번째 열 (1.4,2 24)와 같은 컬럼의 평균을 원한다면? 또는 두 번째 열 (2,3 및 5)?

나는 배열에 열을 가하고 평균 기능 내장 일하는 것이 사용하여 생각하지만, 지금까지 내가 만 행이 아닌 열


대신에 다른 스레드를 만들기를 추출 할 수 있어요 나는 이걸 편집하겠다고 생각했다. 나는 잘 알려진 홍채 데이터 세트의 각 열의 평균을 얻고 자 노력 중이다.

5.1,3.5,1.4,0.2,Iris-setosa 
4.9,3.0,1.4,0.2,Iris-setosa 
4.7,3.2,1.3,0.2,Iris-setosa 
4.6,3.1,1.5,0.2,Iris-setosa 
5.0,3.6,1.4,0.2,Iris-setosa 
5.4,3.9,1.7,0.4,Iris-setosa 
4.6,3.4,1.4,0.3,Iris-setosa 

delimiterln= ','; 
data = importdata('iris.txt', delimiterln); 


meanCol1 = mean(data(:,1)) 
meanCol2 = mean(data(:,2)) 
meanCol3 = mean(data(:,3)) 
meanCol4 = mean(data(:,4)) 

불확정 함수 '합'타입 '셀'의 입력 인수 : I 데이터의 일부를 잘라.

평균 오차 (라인 115) y = sum (x, dim, flag)/size (x, dim); irisData에서

오류 (6 호선) meanCol1 = 평균 (데이터 (: 1))

데이터 유형 ... 여기에 대한 생각을 처리에 오류가있는 것 같습니다? 문자열 인 마지막 열을 제거하려고했습니다. 오류없이 작동하는 것 같습니다. 그래서 나는 그것이 끈 때문이라고 생각하고 있습니다. 파일 읽기 기능을 쉼표로 구분 된

답변

1

사용 :

이제
M = csvread(filename); 

는 행렬 M이 가지고 : matlab에와

col1Mean=mean(M(:,1)); 
+0

가 일찍 자주 가능한 "벡터화"사고 방식에 들어갈 지불 : 'mean (M, 1)'은 모든 컬럼의 평균을 한꺼번에 가져옵니다. – jez

+0

은 숫자에 대해서만 csvread입니까? 추가 열의 문자열이 있다면 어떻게 될까요? 해당 열을 제외하는 방법이 있습니까? –

+0

좋아요, 나는 행의 범위를 수행하는 방법을 알고 있기 때문에 –

관련 문제