由于类型为double和cell,无法在Matlab中串联表变量

lmvvr0a8  于 11个月前  发布在  Matlab
关注(0)|答案(1)|浏览(1132)

关于此事请帮我解决这个问题,谢谢
这是我的错误:
1.使用 {} 时出错,无法连接表变量PV1ROOFTOP_W_和DEMAND_W_,因为它们的类型是double和cell。

  1. groupSequences(line_18)data {idx}= tbl {dateshift(tbl {:,groupByColumn},"start","day")== indexes(idx),(tbl. Properties. VariableNames~= groupByColumn)}'中出错;
    这些是我的My codes and dataReference code文件
close all clear clc tbl = readtable("Demand.csv"); tbl = rmmissing(tbl); head(tbl) figure stackedplot(tbl, "XVariable", "DATE") title("Solar Power Consumption & Demand") data = groupSequences(tbl, "DATE"); [train_data, val_data, test_data] = splitSequence(data); clear tbl data


function data = groupSequences(tbl, groupByColumn) arguments tbl table groupByColumn (1, 1) string end if isa(tbl{1, groupByColumn}, "datetime") indexes = unique(dateshift(tbl{:, groupByColumn}, "start", "day"), "rows", "stable"); else indexes = unique(tbl{:, groupByColumn}, "rows", "stable"); end indexes = sort(indexes, "ascend"); numIdxs = length(indexes); data = cell(numIdxs, 1); if isa(tbl{1, groupByColumn}, "datetime") for idx = 1:numIdxs data{idx} = tbl{dateshift(tbl{:, groupByColumn}, "start", "day") == indexes(idx), (tbl.Properties.VariableNames ~= groupByColumn)}'; end

else for idx = 1:numIdxs data {idx}= tbl {tbl {:,groupByColumn}== indexes(idx),(tbl. Properties. VariableNames~= groupByColumn)}';结束结束

vjhs03f7

vjhs03f71#

你的问题是MATLAB
无法连接表变量Var1和Var2,因为它们的类型是double和cell。
我不会浏览你的谷歌硬盘,所以我会提供一个通用的答案。
首先,分析您用作输入的变量,并确定它们是单元格类型还是常规双数组类型。
如果你有一个单元格变量可以转换为矩阵,你可以通过使用cell2mat这样的函数来实现。此转换将使您能够更有效地操作数据。
或者,如果您选择保持单元格变量的原样,您有几个选项可以将其与矩阵内容组合在一起。您可以在单元格中展开矩阵,实质上是将其追加到现有单元格内容,也可以向单元格中添加新元素,将矩阵作为附加项合并。

相关问题