2016-09-29 14 views
0

Matlabを使用してExcelテーブルから変数と数値を取得しようとしています。Matlabで2つのセルの配列を減算する方法

「diffZ_trial1-4」という名前の変数は、2つの列の間の差異(「開始」と「終了」の間)で計算する必要があります。しかし、私はエラーを取得する:

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

そして、私はそれは私が[] {}出力の代わりを取得し、多分私はcell2matを使用するか、または何らかの形で出力を変換する必要があるという事実に関係することができることをどこかで読んだことがあります。しかし、私はそれがうまくいきませんでした!

質問:以下の2つの列の違いをどのように計算できますか?

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をお持ちの場合は、読み込み可能(https://uk.mathworks.com/help/matlab/ref/readtable.html)と試してみてください。これはもっと柔軟です。これは、テキストと数字の両方を含むExcelファイルからテーブルを作成します。

関連する問題