关于此事请帮我解决这个问题,谢谢
这是我的错误:
1.使用 {} 时出错,无法连接表变量PV1ROOFTOP_W_和DEMAND_W_,因为它们的类型是double和cell。
- groupSequences(line_18)data {idx}= tbl {dateshift(tbl {:,groupByColumn},"start","day")== indexes(idx),(tbl. Properties. VariableNames~= groupByColumn)}'中出错;
这些是我的My codes and data和Reference 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)}';结束结束
1条答案
按热度按时间vjhs03f71#
你的问题是MATLAB
无法连接表变量Var1和Var2,因为它们的类型是double和cell。
我不会浏览你的谷歌硬盘,所以我会提供一个通用的答案。
首先,分析您用作输入的变量,并确定它们是单元格类型还是常规双数组类型。
如果你有一个单元格变量可以转换为矩阵,你可以通过使用
cell2mat
这样的函数来实现。此转换将使您能够更有效地操作数据。或者,如果您选择保持单元格变量的原样,您有几个选项可以将其与矩阵内容组合在一起。您可以在单元格中展开矩阵,实质上是将其追加到现有单元格内容,也可以向单元格中添加新元素,将矩阵作为附加项合并。