MATLAB Answers

Write a function wich oly needs a file input as argument

1 ビュー (過去 30 日間)
Niklas Reinshagen
Niklas Reinshagen 2021 年 5 月 22 日
回答済み: Image Analyst 2021 年 5 月 22 日
function getGPSstats(file)
%cd c:\Users\NMR\Desktop\Ex4_Data;
data = load(file);
% delete the error columns
data(:,7:9)=[];
% create a single vector for ech of the six remaining columns
decYear = data(:,1);
intYear = data(:,2);
dayNum = data(:,3);
eastPos = data(:,5);
vertPos = data(:,6);
% plot the data
plot(data);
I want to write a function wich acepts a .neu file from several GPS Stations. every file has about 4000x9 structure, the last three columns are error columns, so i delete them to save a bit storage.
But when I want to seperate the columns like this
decYear = data(:,1);
intYear = data(:,2);
dayNum = data(:,3);
eastPos = data(:,5);
vertPos = data(:,6);
Matlab told me "The value assigned to .... might be unused
So my function is stored as ans and get plotted at the end. So i wonder what is the issue of the code. I want to have a Matrix called data and modify it, but i ony get ans
*I have to correct myself when i try to call the function like getGPSstats('gpsdata.neu') I don't even get an ans, just the plot.

回答 (2 件)

David Fletcher
David Fletcher 2021 年 5 月 22 日
編集済み: David Fletcher 2021 年 5 月 22 日
It's a warning that you have declared variables (decYear, intYear, dayNum etc.) and not used them anywhere in the code. The code will still run, but obviously if the variables aren't ever used, then there isn't much point declaring them in the first place. And yes, all the variables with be local to the function, if you do not declare any output then all you will get out of it will be the plot.
  5 件のコメント
David Fletcher
David Fletcher 2021 年 5 月 22 日
You said you got the plot at the end in your original message: if you got the plot then the data must have loaded into the variable. And if there were no error messages, all the variables derived from data were created, but as I said, unless you declare the variables as function outputs then they will all disappear when the function exits.
function [decYear, intYear, dayNum, eastPos, vertPos]=getGPSstats(file)
%cd c:\Users\NMR\Desktop\Ex4_Data;
data = load(file);
% delete the error columns
data(:,7:9)=[];
% create a single vector for ech of the six remaining columns
decYear = data(:,1);
intYear = data(:,2);
dayNum = data(:,3);
eastPos = data(:,5);
vertPos = data(:,6);
% plot the data
plot(data);
end
Then call the function with
[decYear, intYear, dayNum, eastPos, vertPos]=getGPSstats(filename)
and you will get the variables as function outputs

サインインしてコメントする。


Image Analyst
Image Analyst 2021 年 5 月 22 日
Does this work:
If not, attach the .neu file (zipped up) so we can try it.
clc; % Clear command window.
fprintf('Running %s.m ...\n', mfilename);
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
workspace; % Make sure the workspace panel is showing.
folder = 'c:\Users\NMR\Desktop\Ex4_Data';
fullFileName = fullfile(folder, 'gpsdata.neu');
data = getGPSstats(fullFileName);
% Now do something else with data.
fprintf('Done running %s.m\n', mfilename);
%===============================================================================
function data = getGPSstats(fullFileName)
data = []; % Initialize.
if ~isfile(fullFileName)
errorMessage = sprintf('Error: the file does not exist:\n%s', fullFileName);
fprintf('%s\n', errorMessage);
uiwait(errordlg(errorMessage));
return;
end
%cd c:\Users\NMR\Desktop\Ex4_Data;
data = load(fullFileName); % Maybe use readmatrix() or importdata() instead?
% Delete the error columns.
data(:,7:9)=[];
% Unused code below -- commented out.
% % Create a single vector for ech of the six remaining columns
% decYear = data(:,1);
% intYear = data(:,2);
% dayNum = data(:,3);
% eastPos = data(:,5);
% vertPos = data(:,6);
% Plot the data
plot(data, '-', 'LineWidth', 2);
grid on;
fontSize = 18;
[folder, baseNameNoExt, ext] = fileparts(fullFileName);
title([baseNameNoExt, ext], 'FontSize', fontSize);
xlabel('x', 'FontSize', fontSize);
ylabel('y', 'FontSize', fontSize);
end

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by