當我嘗試使用以下代碼創建表時:
sz = [4 3];
varTypes = ["double","datetime","string"];
varNames = ["Temperature","Time","Station"];
temps = table('Size',sz,'VariableTypes',varTypes,'VariableNames',varNames)
我得到:
Error using table (line 254) Specify variable types as a cell array of character
vectors, indicating the type of each variable to be created.
請幫助我找到我在這里缺少的東西。我正在使用 MATLAB R2018a。
uj5u.com熱心網友回復:
錯誤訊息表明您需要char對該語法使用單引號向量。table(關于創建和雙引號有一些粗糙的邊緣string......)。您可以使用cellstr在 R2018a 中解決此問題,如下所示:
sz = [4 3];
varTypes = ["double","datetime","string"];
varNames = ["Temperature","Time","Station"];
temps = table('Size',sz,'VariableTypes',cellstr(varTypes),...
'VariableNames',cellstr(varNames))
uj5u.com熱心網友回復:
使用'Size'輸入的能力對于 18a 來說是全新的,如果您遇到錯誤和/或想要在舊版本的 MATLAB 上運行的解決方案,您可以使用自定義函式根據任何默認值填充空表你要。可以在此演示中添加更多變數型別:
>> temps = emptyTable( 4, varTypes, varNames )
temps =
4×3 table
Temperature Time Station
___________ ____ _______
NaN NaT ""
NaN NaT ""
NaN NaT ""
NaN NaT ""
這是功能:
function tbl = emptyTable( nRows, varTypes, varNames )
tbl = table();
varTypes = cellstr(varTypes); % hande string/char/cellstr input
for ii = 1:numel(varTypes)
varName = varNames{ii};
switch varTypes{ii}
case 'double'
tbl.(varName) = NaN(nRows,1);
case 'datetime'
tbl.(varName) = NaT(nRows,1);
case 'string'
tbl.(varName) = repmat("",nRows,1);
end
end
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/511570.html
標籤:matlab数据表
