質問: d{k,2}.longitude(d{k,1}.timestamp_jst); end 5行目の1列目が860252✕26列となっていますが、27〜29列目に、セル2列目からタイムスタンプを基準にデータを抽出する流れです。 ↓以下はセル5行1列目のtableの最下部です。どの列も最終行までデータが入っているのですが、なぜこのエラーがでるのかが分かりません。。
回答: >原因がわかるかたがいらっしゃいましたら教えて下さい。 ”e{k,2}.latitude(e{k,1}.timestamp_jst)”は、セル2列目(抽出したいtimetable)の項目中、セル1列目(完成させたいtable)のtimestamp_jst列のタイムスタンプと合致する行を抽出する事を意図していると思うのですが、そうはなっておらず、毎回全行が抽出されているので「完成させたいtableの行数*抽出したいtimetableの行数」のベクトルとなってしまいます。これが原因です。e{k,1}.timestamp_jstのindex参照を除けば、完成させたいtableと抽出したいtimetableの行数が合致する(2021/7/8を除く)のでエラーが出なくなりました。 load('samples.mat'); e = cell(7,2); % 格納セルの作成 for k = 1:1 % <<<<最初の1つだけ % data2を日付毎にセル1列目に格納 idx = datasample.date == sprintf('2021-07-0%d',k+1); e{k,1} = datasample(idx,:); % navlogのtimetblを日付毎にセル2列目に格納 idxx = timetblsample.date == sprintf('2021-07-0%d',k+1); e{k,2} = timetblsample(idxx,:); % data2に緯度経度をnavlogのtimetblから抽出 e{k,1}.latitude = e{k,2}(e{k,1}.timestamp_jst(1),2); e{k,1}.longitude = e{k,2}(e{k,1}.timestamp_jst(1),3); e{k,1} end 「行をindex指定で、列を変数名で」指定する方法が判らないので両方ともindex指定で行いました。 tableにtimetableをくっ付けると上記のような形になってしまいました。 あと、抽出側に同じタイムスタンプのデータが複数ある場合全てのデータを拾ってしまうので、この処理方法を検討する必要がありそうです。1番目(2021/7/2)はたまたま行数が一致しただけで、k=1:7で繰り返すと途中でエラーが出ます。