Seagrid error
Seagrid error
I've been working on generating a grid using the ROMSgui interface. I'm using Matlab R2007b and have installed what I believe I need to (netcdf, mexnc, etc). I've also added the Presto (and subdirectories) and mex_matlab_linux32 to my path.
I've gone through the steps outlined in the tutorial and made a grid using the amazon coastline and depths. I am able to develop a grid and process it into a netCDF file but I got an error message that I don't understand.
************************************************
>> seagrid2roms('test_roms.mat')
theRomsFile =
/home/drew/Programs/Matlab75/Downloads/seagrid/test_roms_grd.nc
## SeaGrid Source File : test_roms.mat
## ROMS Destination File: /home/drew/Programs/Matlab75/Downloads/seagrid/test_roms_grd.nc
??? Error using ==> feval
Invalid MEXfile '/home/drew/Programs/Matlab75/Downloads/matlab/netcdf/mexcdf53.mexglx':
/home/drew/Programs/Matlab75/Downloads/matlab/netcdf/mexcdf53.mexglx: undefined symbol: _fxstat.
Error in ==> ncmex at 139
[varargout{:}] = feval(fcn, varargin{:});
Error in ==> netcdf.create at 13
[theNCid, status] = ncmex('create', name(self), thePermission);
Error in ==> netcdf.netcdf at 413
result = create(result, thePermission);
Error in ==> seagrid2roms at 142
nc = netcdf(theRomsFile, 'clobber');
************************************************
Is this a critical error or is it something that can be safely ignored?
Thanks
I've gone through the steps outlined in the tutorial and made a grid using the amazon coastline and depths. I am able to develop a grid and process it into a netCDF file but I got an error message that I don't understand.
************************************************
>> seagrid2roms('test_roms.mat')
theRomsFile =
/home/drew/Programs/Matlab75/Downloads/seagrid/test_roms_grd.nc
## SeaGrid Source File : test_roms.mat
## ROMS Destination File: /home/drew/Programs/Matlab75/Downloads/seagrid/test_roms_grd.nc
??? Error using ==> feval
Invalid MEXfile '/home/drew/Programs/Matlab75/Downloads/matlab/netcdf/mexcdf53.mexglx':
/home/drew/Programs/Matlab75/Downloads/matlab/netcdf/mexcdf53.mexglx: undefined symbol: _fxstat.
Error in ==> ncmex at 139
[varargout{:}] = feval(fcn, varargin{:});
Error in ==> netcdf.create at 13
[theNCid, status] = ncmex('create', name(self), thePermission);
Error in ==> netcdf.netcdf at 413
result = create(result, thePermission);
Error in ==> seagrid2roms at 142
nc = netcdf(theRomsFile, 'clobber');
************************************************
Is this a critical error or is it something that can be safely ignored?
Thanks
I am using Matlab7.1(R14SP3). My seagrid version of 23Apr2001 16:26:45. All Seagrid seems work very well except when I go to View and click Setup, it shows the following error
??? Error using ==> mat2str
Too many input arguments.
Error in ==> guido at 316
theControls(end+1) = uicontrol( ...
Error in ==> seagrid.dosetup at 83
s = guido(SeaGrid_Setup);
Error in ==> seagrid.doevent at 187
dosetup(self)
Error in ==> psevent at 25
doevent(ps(gcbf), theEvent, theMessage);
??? Error while evaluating uimenu Callback.
can anyone help me?
Rouf
??? Error using ==> mat2str
Too many input arguments.
Error in ==> guido at 316
theControls(end+1) = uicontrol( ...
Error in ==> seagrid.dosetup at 83
s = guido(SeaGrid_Setup);
Error in ==> seagrid.doevent at 187
dosetup(self)
Error in ==> psevent at 25
doevent(ps(gcbf), theEvent, theMessage);
??? Error while evaluating uimenu Callback.
can anyone help me?
Rouf
I think you're going to have to provide a little more information than that before anyone can help you.
First of all, and you *ever* been able to get seagrid to work for you on a test case? We need to know whether your setup simply does not work, or whether is does not work they way you are trying to use it for your own project.
There is a seagrid tutorial at http://woodshole.er.usgs.gov/operations ... orial.html
If the download source noted in the tutorial page is not where you got the code, then perhaps that is your problem.
The tutorial clearly lays out the steps
* A  Getting Started, Loading Data
* B  Corner Points, Edge Points
* C  Orthogonality, Spacers
* D  Saving, Masking
* E  Bathymetry
In your next posting, indicate where in this process seagrid fails for you.
First of all, and you *ever* been able to get seagrid to work for you on a test case? We need to know whether your setup simply does not work, or whether is does not work they way you are trying to use it for your own project.
There is a seagrid tutorial at http://woodshole.er.usgs.gov/operations ... orial.html
If the download source noted in the tutorial page is not where you got the code, then perhaps that is your problem.
The tutorial clearly lays out the steps
* A  Getting Started, Loading Data
* B  Corner Points, Edge Points
* C  Orthogonality, Spacers
* D  Saving, Masking
* E  Bathymetry
In your next posting, indicate where in this process seagrid fails for you.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 089018521, USA. ph: 6096300559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 089018521, USA. ph: 6096300559 jwilkin@rutgers.edu
I am using seagrid Version of 23Apr2001 16:26:45. I downloaded the source from http://woodshole.er.usgs.gov/operations ... agrid.html
And followed the tutorial. Tutorial section A,C,D and E work properly except the section B. According to this section B, I can Define corner points, Add edge points and Zoom. After that, when I go to the setup dialog, I select View/Setup in seagrid but no screen appear to change grid size and shows following error in Matlab 7.1. So I cant change the gridsizes.
??? Error using ==> mat2str
Too many input arguments.
Error in ==> guido at 316
theControls(end+1) = uicontrol( ...
Error in ==> seagrid.dosetup at 83
s = guido(SeaGrid_Setup);
Error in ==> seagrid.doevent at 187
dosetup(self)
Error in ==> psevent at 25
doevent(ps(gcbf), theEvent, theMessage);
??? Error while evaluating uimenu Callback.
I hope the explanation will make clear about my problem.
Rouf
And followed the tutorial. Tutorial section A,C,D and E work properly except the section B. According to this section B, I can Define corner points, Add edge points and Zoom. After that, when I go to the setup dialog, I select View/Setup in seagrid but no screen appear to change grid size and shows following error in Matlab 7.1. So I cant change the gridsizes.
??? Error using ==> mat2str
Too many input arguments.
Error in ==> guido at 316
theControls(end+1) = uicontrol( ...
Error in ==> seagrid.dosetup at 83
s = guido(SeaGrid_Setup);
Error in ==> seagrid.doevent at 187
dosetup(self)
Error in ==> psevent at 25
doevent(ps(gcbf), theEvent, theMessage);
??? Error while evaluating uimenu Callback.
I hope the explanation will make clear about my problem.
Rouf
In the very first window that seagrid opens (immediately after you start the seagrid function) can you follow the tutorial instructions to define 4 corner points? You should get a simple 10x10 mesh looking something like:
http://woodshole.er.usgs.gov/operations ... al_050.jpg
(never mind about the coastline etc.  that can come later.)
If this doesn't work, I can only assume there is something nonstandard with your Matlabpath, or your download of the seagrid code was corrupted.
http://woodshole.er.usgs.gov/operations ... al_050.jpg
(never mind about the coastline etc.  that can come later.)
If you get the simple mesh, can you then select the menu VIEW > SETUP ... to define a new number of points.Define Corner Points  In the main "SeaGrid" window, click on four points with mouse button #1 to define the grid boundary approximately. Once established, the corner points can be refined by dragging with mouse button #1. The starting corner point, marked by an asterisk (*), can be rolled counterclockwise to the next corner by selecting the "View/Roll" menu item. Edge #1 follows counterclockwise from the (*) to the next corner. Edge #2 is the next one along. Gridcell spacings are determined along those two edges. (See "spacer" steps below.)
If this doesn't work, I can only assume there is something nonstandard with your Matlabpath, or your download of the seagrid code was corrupted.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 089018521, USA. ph: 6096300559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 089018521, USA. ph: 6096300559 jwilkin@rutgers.edu
Yes I can follow the tutorial instructions to define 4 corner points immediately after the seagrid function. I can get simple mesh. But VIEW>SETUP is showing the above errors.
I am bit worried about seagrid code corruption. As you know, earlier I faced a problem with Mex files then according to you and John Evans suggestion (I quoted here) I download the seagrid version of 23Apr2001 16:26:45.
Rouf
I am bit worried about seagrid code corruption. As you know, earlier I faced a problem with Mex files then according to you and John Evans suggestion (I quoted here) I download the seagrid version of 23Apr2001 16:26:45.
It solved the error regarding Mex files. But I am worried about the corruption of seagrid code even it solved Mex related errors earlier. Is it possible to crosscheck the seagrid version of 23Apr2001 16:26:45, particularly in changing grid size (in menu VIEW>SETUP)?I asked John Evans at The Mathworks about this, and he is as mystified as me. Here is his reply:
Quote:
Uhm, hmm, my first thought was that the user must be using an old mexfile, because the 7.1 release is supposed to be using "*.mexw32" instead of "*.dll" for an extension... but it looks like I was the one who built it as a *.dll in the first place. Looking a bit further, it seems that dropping the dll extension is strongly recommended, but not required for 7.1. It *should* still work, though. I went ahead and rebuilt the win32 mexfile for 7.1 (R14sp3) as having the "*.mexw32" extention. It tests ok and is posted at the sourceforge site. Tell the user to try it out.
So I suggest you try John's new mex files posted on sourceforge where you got the files before, and let us know what happens.
Rouf
Then if you think your code is corrupted, download it again, unzip it, and do a diff on all the files. Or just run the new version (possibly with the new mex files you already have) and see if that works.
The tests I've led you through certainly indicate it is failing for no obvious other reason.
The tests I've led you through certainly indicate it is failing for no obvious other reason.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 089018521, USA. ph: 6096300559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 089018521, USA. ph: 6096300559 jwilkin@rutgers.edu
Re: Seagrid error
There are two mat2str functions, one is in the mexcdf5 directory of ROMS matlab tool, and the other one is in matlab/toolbox/matlab/strfun/ directory. The two mat2str functions are different.
The first one is :
function s = mat2str(x)
% MAT2STR String equivalent to a matrix.
% MAT2STR(X) converts matrix X to a oneline
% string which is roughly equivalent
% to X, for display purposes. If X is
% larger than a scalar, then its values are
% written between square brackets.
% Copyright (C) 1991 Charles R. Denham, Zydeco.
if nargin < 1
help mat2str
x = [1 2 3; pi inf nan];
disp(' The matrix:'), disp(' ')
disp(x), disp(' becomes the string:'), disp(' ')
disp([' ' mat2str(x)])
return
end
quote = '''';
[m, n] = size(x);
s = '';
bracket = isstr(x) & m > 1  ~isstr(x) & length(x) > 1;
if bracket, s = ['[']; end
for i = 1:m
if isstr(x)
t = [quote x(i, :) quote];
s = [s t];
else
for j = 1:n
z = x(i, j);
if isnan(z)
t = 'nan';
elseif z == inf
t = 'inf';
elseif z == inf
t = 'inf';
elseif z == fix(z)
t = int2str(z);
else
t = num2str(z);
end
s = [s t];
if j < n, s = [s ' ']; end
end
end
if i < m, s = [s '; ']; end
end
if bracket, s = [s ']']; end
The other one is :
function string = mat2str(matrix, varargin)
%MAT2STR Convert a 2D matrix to a string in MATLAB syntax.
% STR = MAT2STR(MAT) converts the 2D matrix MAT to a MATLAB
% string so that EVAL(STR) produces the original matrix (to
% within 15 digits of precision). Nonscalar matrices are
% converted to a string containing brackets [].
%
% STR = MAT2STR(MAT,N) uses N digits of precision.
%
% STR = MAT2STR(MAT, 'class') creates a string with the name of the class
% of MAT included. This option ensures that the result of evaluating STR
% will also contain the class information.
%
% STR = MAT2STR(MAT, N, 'class') uses N digits of precision and includes
% the class information.
%
% Example
% mat2str(magic(3)) produces the string '[8 1 6; 3 5 7; 4 9 2]'.
% a = int8(magic(3))
% mat2str(a,'class') produces the string
% 'int8([8 1 6; 3 5 7; 4 9 2])'.
%
% See also NUM2STR, INT2STR, SPRINTF, CLASS, EVAL.
% Copyright 19842005 The MathWorks, Inc.
% $Revision: 1.28.4.8 $ $Date: 2006/12/20 07:18:24 $
if nargin<1  nargin>3
error(nargchk(1,3,nargin,'struct'));
end
numoptions = length(varargin);
useclass = false;
usedigits = false;
for i = 1:numoptions
if ischar(varargin{i})
switch lower(varargin{i})
case 'class'
useclass = true;
otherwise
error('MATLAB:mat2str:InvalidOptionString','Optional string argument ''%s'' not supported.', varargin{i});
end
elseif isnumeric(varargin{i})
usedigits = true;
n = varargin{i};
else
error('MATLAB:mat2str:InvalidOptionType','Optional arguments must be numeric or strings.');
end
end
if (ndims(matrix) > 2)
error('MATLAB:mat2str:TwoDInput','Input matrix must be 2D.');
end
if ~(isnumeric(matrix)  ischar(matrix)  islogical(matrix))
error('MATLAB:mat2str:NumericInput','Input matrix must be numeric.');
end
[rows, cols] = size(matrix);
if useclass
string = [class(matrix), '('];
else
if ischar(matrix) && ~isempty(matrix)
strings = cell(rows,1);
for row=1:rows
strings{row} = matrix(row,:);
end
needsConcatenation = rows > 1;
dangerousPattern = '[\0\n]';
hasDangerousChars = regexp(strings, dangerousPattern, 'once');
needsConcatenation = needsConcatenation  ~isempty([hasDangerousChars{:}]);
strings = strrep(strings, '''', '''''');
strings = regexprep(strings, dangerousPattern, ''' char(${sprintf(''%d'',$0)}) ''');
if needsConcatenation
string = '[';
else
string = '';
end
string = [string '''' strings{1} ''''];
for row = 2:rows
string = [string ';''' strings{row} '''']; %#ok
end
if needsConcatenation
string = [string ']'];
end
return;
end
string = '';
end
if isempty(matrix)
if (rows==0) && (cols==0)
if ischar(matrix)
string = [string ''''''];
else
string = [string '[]'];
end
else
string = [string 'zeros(' int2str(rows) ',' int2str(cols) ')'];
end
if useclass
string = [string, ')'];
end
return
end
if usedigits == false
n = 15;
form = '%.15g';
else
form = sprintf('%%.%dg',n);
end
pos = length(string)+1;
% now guess how big string will need to be
% n+7 covers (space) or +i at the start of the string, the decimal point
% and E+00. The +10 covers class string and parentheses.
if ~isreal(matrix)
spaceRequired = (2*(n+7)) * numel(matrix) + 10;
realFlag = false;
else
spaceRequired = ((n+7) * numel(matrix)) + 10;
realFlag = true;
end
string(1,spaceRequired) = char(0);
if rows*cols ~= 1
string(pos) = '[';
pos = pos + 1;
end
for i = 1:rows
for j = 1:cols
if(matrix(i,j) == Inf)
string(pos:pos+2) = 'Inf';
pos = pos + 3;
elseif (matrix(i,j) == Inf)
string(pos:pos+3) = 'Inf';
pos = pos + 4;
elseif islogical(matrix(i,j))
if matrix(i,j) % == true
string(pos:pos+3) = 'true';
pos = pos + 4;
else
string(pos:pos+4) = 'false';
pos = pos + 5;
end
else
if realFlag  isreal(matrix(i,j))
tempStr = sprintf(form,matrix(i,j));
len = length(tempStr);
string(pos:pos+len1) = tempStr;
pos = pos+len;
else
tempStr = sprintf(form,real(matrix(i,j)));
len = length(tempStr);
string(pos:pos+len1) = tempStr;
pos = pos+len;
if(imag(matrix(i,j)) < 0)
tempStr = ['i*',sprintf(form,abs(imag(matrix(i,j))))];
else
tempStr = ['+i*',sprintf(form,imag(matrix(i,j)))];
end
len = length(tempStr);
string(pos:pos+len1) = tempStr;
pos = pos+len;
end
end
string(pos) = ' ';
pos = pos + 1;
end
string(pos1) = ';';
end
% clean up the end of the string
if rows * cols ~= 1
string(pos1) = ']';
else
% remove trailing space from scalars
pos = pos  1;
end
if useclass
string(pos) = ')';
pos = pos+1;
end
string = string(1:pos1);
% end mat2str
You should check the mat2str function by type "<which mat2str" to see the seagrid invoking which mat2str. The correct one which seagrid should to invoke is the second.
Enjoy it!
The first one is :
function s = mat2str(x)
% MAT2STR String equivalent to a matrix.
% MAT2STR(X) converts matrix X to a oneline
% string which is roughly equivalent
% to X, for display purposes. If X is
% larger than a scalar, then its values are
% written between square brackets.
% Copyright (C) 1991 Charles R. Denham, Zydeco.
if nargin < 1
help mat2str
x = [1 2 3; pi inf nan];
disp(' The matrix:'), disp(' ')
disp(x), disp(' becomes the string:'), disp(' ')
disp([' ' mat2str(x)])
return
end
quote = '''';
[m, n] = size(x);
s = '';
bracket = isstr(x) & m > 1  ~isstr(x) & length(x) > 1;
if bracket, s = ['[']; end
for i = 1:m
if isstr(x)
t = [quote x(i, :) quote];
s = [s t];
else
for j = 1:n
z = x(i, j);
if isnan(z)
t = 'nan';
elseif z == inf
t = 'inf';
elseif z == inf
t = 'inf';
elseif z == fix(z)
t = int2str(z);
else
t = num2str(z);
end
s = [s t];
if j < n, s = [s ' ']; end
end
end
if i < m, s = [s '; ']; end
end
if bracket, s = [s ']']; end
The other one is :
function string = mat2str(matrix, varargin)
%MAT2STR Convert a 2D matrix to a string in MATLAB syntax.
% STR = MAT2STR(MAT) converts the 2D matrix MAT to a MATLAB
% string so that EVAL(STR) produces the original matrix (to
% within 15 digits of precision). Nonscalar matrices are
% converted to a string containing brackets [].
%
% STR = MAT2STR(MAT,N) uses N digits of precision.
%
% STR = MAT2STR(MAT, 'class') creates a string with the name of the class
% of MAT included. This option ensures that the result of evaluating STR
% will also contain the class information.
%
% STR = MAT2STR(MAT, N, 'class') uses N digits of precision and includes
% the class information.
%
% Example
% mat2str(magic(3)) produces the string '[8 1 6; 3 5 7; 4 9 2]'.
% a = int8(magic(3))
% mat2str(a,'class') produces the string
% 'int8([8 1 6; 3 5 7; 4 9 2])'.
%
% See also NUM2STR, INT2STR, SPRINTF, CLASS, EVAL.
% Copyright 19842005 The MathWorks, Inc.
% $Revision: 1.28.4.8 $ $Date: 2006/12/20 07:18:24 $
if nargin<1  nargin>3
error(nargchk(1,3,nargin,'struct'));
end
numoptions = length(varargin);
useclass = false;
usedigits = false;
for i = 1:numoptions
if ischar(varargin{i})
switch lower(varargin{i})
case 'class'
useclass = true;
otherwise
error('MATLAB:mat2str:InvalidOptionString','Optional string argument ''%s'' not supported.', varargin{i});
end
elseif isnumeric(varargin{i})
usedigits = true;
n = varargin{i};
else
error('MATLAB:mat2str:InvalidOptionType','Optional arguments must be numeric or strings.');
end
end
if (ndims(matrix) > 2)
error('MATLAB:mat2str:TwoDInput','Input matrix must be 2D.');
end
if ~(isnumeric(matrix)  ischar(matrix)  islogical(matrix))
error('MATLAB:mat2str:NumericInput','Input matrix must be numeric.');
end
[rows, cols] = size(matrix);
if useclass
string = [class(matrix), '('];
else
if ischar(matrix) && ~isempty(matrix)
strings = cell(rows,1);
for row=1:rows
strings{row} = matrix(row,:);
end
needsConcatenation = rows > 1;
dangerousPattern = '[\0\n]';
hasDangerousChars = regexp(strings, dangerousPattern, 'once');
needsConcatenation = needsConcatenation  ~isempty([hasDangerousChars{:}]);
strings = strrep(strings, '''', '''''');
strings = regexprep(strings, dangerousPattern, ''' char(${sprintf(''%d'',$0)}) ''');
if needsConcatenation
string = '[';
else
string = '';
end
string = [string '''' strings{1} ''''];
for row = 2:rows
string = [string ';''' strings{row} '''']; %#ok
end
if needsConcatenation
string = [string ']'];
end
return;
end
string = '';
end
if isempty(matrix)
if (rows==0) && (cols==0)
if ischar(matrix)
string = [string ''''''];
else
string = [string '[]'];
end
else
string = [string 'zeros(' int2str(rows) ',' int2str(cols) ')'];
end
if useclass
string = [string, ')'];
end
return
end
if usedigits == false
n = 15;
form = '%.15g';
else
form = sprintf('%%.%dg',n);
end
pos = length(string)+1;
% now guess how big string will need to be
% n+7 covers (space) or +i at the start of the string, the decimal point
% and E+00. The +10 covers class string and parentheses.
if ~isreal(matrix)
spaceRequired = (2*(n+7)) * numel(matrix) + 10;
realFlag = false;
else
spaceRequired = ((n+7) * numel(matrix)) + 10;
realFlag = true;
end
string(1,spaceRequired) = char(0);
if rows*cols ~= 1
string(pos) = '[';
pos = pos + 1;
end
for i = 1:rows
for j = 1:cols
if(matrix(i,j) == Inf)
string(pos:pos+2) = 'Inf';
pos = pos + 3;
elseif (matrix(i,j) == Inf)
string(pos:pos+3) = 'Inf';
pos = pos + 4;
elseif islogical(matrix(i,j))
if matrix(i,j) % == true
string(pos:pos+3) = 'true';
pos = pos + 4;
else
string(pos:pos+4) = 'false';
pos = pos + 5;
end
else
if realFlag  isreal(matrix(i,j))
tempStr = sprintf(form,matrix(i,j));
len = length(tempStr);
string(pos:pos+len1) = tempStr;
pos = pos+len;
else
tempStr = sprintf(form,real(matrix(i,j)));
len = length(tempStr);
string(pos:pos+len1) = tempStr;
pos = pos+len;
if(imag(matrix(i,j)) < 0)
tempStr = ['i*',sprintf(form,abs(imag(matrix(i,j))))];
else
tempStr = ['+i*',sprintf(form,imag(matrix(i,j)))];
end
len = length(tempStr);
string(pos:pos+len1) = tempStr;
pos = pos+len;
end
end
string(pos) = ' ';
pos = pos + 1;
end
string(pos1) = ';';
end
% clean up the end of the string
if rows * cols ~= 1
string(pos1) = ']';
else
% remove trailing space from scalars
pos = pos  1;
end
if useclass
string(pos) = ')';
pos = pos+1;
end
string = string(1:pos1);
% end mat2str
You should check the mat2str function by type "<which mat2str" to see the seagrid invoking which mat2str. The correct one which seagrid should to invoke is the second.
Enjoy it!
Re: Seagrid error
hi everyone i'm very new to ROMS. My Matlab version is R2008a .I download mexnc_matlab_r2008a.tar from mexnc's source site. I install the mexnc following the installing guide in the tar file, and I install the seagrid ,add matlab's path /seagrid and /seagrid/mex_matlab76_win32 . The test goes very well until I use seagrid2roms,then it comes out erro like below:
## SeaGrid Source File : seagrid2.mat
## ROMS Destination File: seagrid.nc
Mex file entry point is missing. Please check the (casesensitive)
spelling of mexFunction (for C MEXfiles), or the (caseinsensitive)
spelling of MEXFUNCTION (for FORTRAN MEXfiles).
??? Invalid MEXfile 'D:\Users\size\Documents\MATLAB\tools\mexnc\win32\netcdf.dll': .
Error in ==> seagrid2roms at 142
nc = netcdf(theRomsFile, 'clobber');
Can anybody help me to solve this problem? Thanks!
## SeaGrid Source File : seagrid2.mat
## ROMS Destination File: seagrid.nc
Mex file entry point is missing. Please check the (casesensitive)
spelling of mexFunction (for C MEXfiles), or the (caseinsensitive)
spelling of MEXFUNCTION (for FORTRAN MEXfiles).
??? Invalid MEXfile 'D:\Users\size\Documents\MATLAB\tools\mexnc\win32\netcdf.dll': .
Error in ==> seagrid2roms at 142
nc = netcdf(theRomsFile, 'clobber');
Can anybody help me to solve this problem? Thanks!
Re: Seagrid error
Hello,everyone!
I just began to learn how to use seagrid.I use windows as my system.I followed 'the seaGrid For matlab' tutorial,but when I dragged one point to a new position,the 'seagrid'window never show anything unless i click it,and the matlab will say:
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[]
theMaskToolFlag =
0
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[]
theMaskToolFlag =
0
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[]
theMaskToolFlag =
0
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[] and
Error in ==> zoomsafe>doubleclick at 459
drawnow % Process the eventcue.
Error in ==> zoomsafe at 141
d = doubleclick; % Trap any doubleclick.
>>
Error in ==> zoomsafe>doubleclick at 459
drawnow % Process the eventcue.
Error in ==> zoomsafe at 141
d = doubleclick; % Trap any doubleclick.
??? Interrupt while evaluating figure WindowButtonDownFcn.
I did't know what's wrong with it ,can sb help me? I really appreciate it!Thank u very very very much!
I just began to learn how to use seagrid.I use windows as my system.I followed 'the seaGrid For matlab' tutorial,but when I dragged one point to a new position,the 'seagrid'window never show anything unless i click it,and the matlab will say:
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[]
theMaskToolFlag =
0
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[]
theMaskToolFlag =
0
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[]
theMaskToolFlag =
0
theOrthogonalityFlag =
[]
theBathymetryFlag =
[]
theMaskingFlag =
[]
theMaskTool =
[] and
Error in ==> zoomsafe>doubleclick at 459
drawnow % Process the eventcue.
Error in ==> zoomsafe at 141
d = doubleclick; % Trap any doubleclick.
>>
Error in ==> zoomsafe>doubleclick at 459
drawnow % Process the eventcue.
Error in ==> zoomsafe at 141
d = doubleclick; % Trap any doubleclick.
??? Interrupt while evaluating figure WindowButtonDownFcn.
I did't know what's wrong with it ,can sb help me? I really appreciate it!Thank u very very very much!

 Posts: 34
 Joined: Wed Mar 11, 2009 4:24 pm
 Location: UFES
Re: Seagrid error
Hi everybody.
I have the same problem of DREWA, in the top of the session.
drewa, do you solved the problem?!
Someone can help us?!
Thanks!
I have the same problem of DREWA, in the top of the session.
drewa, do you solved the problem?!
Someone can help us?!
Thanks!
Re: Seagrid error
@rouf: i had the exact same error and i solved it using wgjlove's comment.
all you need to do is
0. type to matlab console: 'which all mat2str'. this should show you two paths like this:
C:\Program Files\MATLAB\...\mexcdf5\mat2str.m
C:\Program Files\MATLAB\...\matlab\strfun\mat2str.m % Shadowed
you need to call the shadowed function ..\strfun\mat2str.m. this means you have to remove the other folder ..\mexcdf5\ from your matlab path  at least at the time of the call to mat2str! this is done as follows.
1. open guido.m (the function that crashes)
2. search for mat2str call in guido.m
3. remove the \mexcdf5\ folder from your matlab path AND add it back AFTER the mat2str call is made. the part around mat2str in guido.m should then look something like this:
%my addition: remove the path of the shadowing function:
rmpath('C:\Program Files\MATLAB\...\mexcdf5\');
%make the call to the correct mat2str, which is not shadowed anymore:
theControls(end+1) = uicontrol( ...
'Style', 'text', ...
'String', theField);
theControls(end+1) = uicontrol( ...
'Style', 'edit', ...
'Max', 1000, ...
'String', mat2str(theValue, thePrecision));
% my addition: add the mexcdf5 folder back to path:
addpath('C:\Program Files\MATLAB\...\mexcdf5\');
that worked for me. setup now works ok. hope this helps.
all you need to do is
0. type to matlab console: 'which all mat2str'. this should show you two paths like this:
C:\Program Files\MATLAB\...\mexcdf5\mat2str.m
C:\Program Files\MATLAB\...\matlab\strfun\mat2str.m % Shadowed
you need to call the shadowed function ..\strfun\mat2str.m. this means you have to remove the other folder ..\mexcdf5\ from your matlab path  at least at the time of the call to mat2str! this is done as follows.
1. open guido.m (the function that crashes)
2. search for mat2str call in guido.m
3. remove the \mexcdf5\ folder from your matlab path AND add it back AFTER the mat2str call is made. the part around mat2str in guido.m should then look something like this:
%my addition: remove the path of the shadowing function:
rmpath('C:\Program Files\MATLAB\...\mexcdf5\');
%make the call to the correct mat2str, which is not shadowed anymore:
theControls(end+1) = uicontrol( ...
'Style', 'text', ...
'String', theField);
theControls(end+1) = uicontrol( ...
'Style', 'edit', ...
'Max', 1000, ...
'String', mat2str(theValue, thePrecision));
% my addition: add the mexcdf5 folder back to path:
addpath('C:\Program Files\MATLAB\...\mexcdf5\');
that worked for me. setup now works ok. hope this helps.