2016-09-29 2 views
0

Matlab을 사용하여 Excel 테이블에서 변수 및 숫자를 가져 오려고합니다.Matlab에서 두 셀 배열을 빼는 방법

"diffZ_trial1-4"라는 아래 변수는 두 열 사이의 차이 ("시작"과 "완료"사이)에 의해 계산되어야합니다. 내가 오류 얻을 그러나 :

Undefined operator '-' for input arguments of type" 'cell'.

을 그리고 나는 그것이 내가 대신 []의 {} 출력을 얻을 어쩌면 내가 cell2mat를 사용하거나 어떻게 든 출력을 변환해야한다는 사실과 관련이있을 수 있다는 것을 어딘가에 읽었습니다. 그러나 그것이 잘못한 것처럼 내가 잘못했을 것입니다!

질문 : 아래의 두 열 사이의 차이를 어떻게 계산합니까?

clear all, close all 

[num,txt,raw] = xlsread('test.xlsx'); 



start = find(strcmp(raw,'HNO')); 

finish = find(strcmp(raw,'End Trial: ')); 

%%% TIMELINE EACH TRIAL 

time_trial1 = raw(start(1):finish(1),8); 
time_trial2 = raw(start(2):finish(2),8); 
time_trial3 = raw(start(3):finish(3),8); 
time_trial4 = raw(start(4):finish(4),8); 

%%%MOVEMENT EACH TRIAL 

diffZ_trial1 = raw(start(1):finish(1),17)-raw(start(1):finish(1),11); 
diffZ_trial2 = raw(start(2):finish(2),17)-raw(start(2):finish(2),11); 
diffZ_trial3 = raw(start(3):finish(3),17)-raw(start(3):finish(3),11); 
diffZ_trial4 = raw(start(4):finish(4),17)-raw(start(4):finish(4),11); 
+0

또 다른 단서는 "원시"에 모든 유형, 숫자 및 문자열의 데이터가 포함되어있을 수 있습니다. 아마도 사용하기에 좋지 않을 수 있습니다. – Spica

답변

0

당신 말이 맞습니다. raw는 텍스트 (http://uk.mathworks.com/help/matlab/ref/xlsread.html#outputarg_raw)를 포함한 모든 유형의 데이터를 포함합니다. 숫자 행렬 인 num을 사용해야합니다.

또는 Matlab의 업데이트 된 버전을 사용하면 readtable (https://uk.mathworks.com/help/matlab/ref/readtable.html)을 시도해 볼 수 있습니다. 더 유연합니다. 그것은 텍스트와 숫자를 모두 포함하는 엑셀 파일로부터 테이블을 생성합니다.

관련 문제