When I import this function, there is a error when I run this codes.

5 次查看(过去 30 天)
function importfile(fileToRead1)
%IMPORTFILE(FILETOREAD1)
% Imports data from the specified file
% FILETOREAD1: file to read
% Auto-generated by MATLAB on 04-Nov-2021 14:13:03
% Import the file
newData1 = load('-mat', fileToRead1);
% Create new variables in the base workspace from those fields.
vars = fieldnames(newData1);
for i = 1:length(vars)
assignin('base', vars{i}, newData1.(vars{i}));
end
importfile('gravity_anomaly_.mat')
<Error>
Not enough input arguments.
Error in importfile (line 9)
newData1 = load('-mat', fileToRead1);
  1 个评论
DGM
DGM 2021-11-4
It works fine for me.
whos % nothing in the base workspace
importfile('carbig.mat') % load
whos % now there's a bunch of stuff in the workspace
Name Size Bytes Class Attributes Acceleration 406x1 3248 double Cylinders 406x1 3248 double Displacement 406x1 3248 double Horsepower 406x1 3248 double MPG 406x1 3248 double Mfg 406x13 10556 char Model 406x36 29232 char Model_Year 406x1 3248 double Origin 406x7 5684 char Weight 406x1 3248 double cyl4 406x5 4060 char org 406x7 5684 char when 406x5 4060 char
function importfile(fileToRead1)
%IMPORTFILE(FILETOREAD1)
% Imports data from the specified file
% FILETOREAD1: file to read
% Auto-generated by MATLAB on 04-Nov-2021 14:13:03
% Import the file
newData1 = load('-mat', fileToRead1);
% Create new variables in the base workspace from those fields.
vars = fieldnames(newData1);
for i = 1:length(vars)
assignin('base', vars{i}, newData1.(vars{i}));
end
end

请先登录,再进行评论。

采纳的回答

Steven Lord
Steven Lord 2021-11-4
Is this line:
importfile('gravity_anomaly_.mat')
inside the importfile function or do you run this in the Command Window?
I suspect you called importfile with no input arguments. If that's correct, move that line I quoted above out of the importfile function and use that to call importfile with an input argument.

更多回答(2 个)

Walter Roberson
Walter Roberson 2021-11-4
load() is not documented as being able to accept the -mat option before the file name, so it is possible that in your version (which you did not mention... hint, hint) that the parsing is deciding that the -mat is the first option and that the filename is missing.

Image Analyst
Image Analyst 2021-11-4
You don't need that function. In fact we usually don't recommend using assignin() anyway. Instead of the importfile() function, which reads the filename into the base workspace, you can simply call load() which will do exactly the same thing:
load('gravity_anomaly_.mat')
Again, there is no need to call that importfile() function from your script at all.

类别

Help CenterFile Exchange 中查找有关 Data Import and Analysis 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by