Undefined function 'log' for input arguments of type 'table'.
7 次查看(过去 30 天)
显示 更早的评论
I'm trying to import Excel sheets into Matlab and then performing log function on them but always get "Undefined function 'log' for input arguments of type 'table'.". Its a fresh install of Matlab and I have just started working with the software.
So, I have two sheets which I just renamed to X and Price and then type the following: Ln_P=log(Price);
And I also tried with the other one Ln_X=log(X);
Still same errors.
2 个评论
Adam
2017-4-21
Your data is in a table object. As the error says, the log function does not accept 'table' types. If your data is purely numeric then just load it into a regular array. Otherwise look at
and the section on 'Applying Functions to Table Contents'
回答(3 个)
Steven Lord
2017-4-21
Tables can contain data of any type. Operate on just the variable(s) that contain numeric data. There are several ways to do this:
% Sample table
T = table(categorical({'M';'F';'M'}),[45;32;34],...
{'NY';'CA';'MA'},logical([1;0;0]),...
'VariableNames',{'Gender' 'Age' 'State' 'Vote'})
% Extract the variable by name
meanAge = mean(T.Age);
% Extract the variable by variable number
didAllVote = all(T{:, 4}) % the Vote variable
% Extract the variable by type
oldest = max(T{:, vartype('double')})
For more techniques you can use to work with data in a table, see the "Access Data in a Table" and "Calculations on Tables" section of the documentation for table.
Personally, where possibly I try to use the syntax involving the name of the variable -- that's independent of the order of the variables in the table and usually the most self-documenting option. When you see meanAge = mean(T.Age); in a block of code, you can understand the purpose of that code pretty quickly.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Bar Plots 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!