Checking if a matrix is right dimensions.
    6 次查看(过去 30 天)
  
       显示 更早的评论
    
I have this code for a user to enter coordinates. This creates then the matrix y and x.
n=10; % number of lines
a= inputdlg('enter x coordinates','test',n)
x=str2num(a{1})
b= inputdlg('enter y coordinates','test',n)
y=str2num(a{1})
I want to make it so that if there is unequal numbers of y and x cordinates a error message is displayed. Would I use if, else statements using the numel command to check if numel of x equalls y.
Thanks,
0 个评论
采纳的回答
  Youssef  Khmou
      
 2014-3-24
        Try
if length(a{1})~=length(b{1})
   error(' Vectors must have same length');
  end
0 个评论
更多回答(1 个)
  Image Analyst
      
      
 2014-3-24
        
      编辑:Image Analyst
      
      
 2014-3-24
  
      Try this:
numberOfCoordinates = 10; % number of coordinates.
for k = 1 : numberOfCoordinates
  editBoxPrompts{k} = sprintf('Coordinate #%d', k);
end
% celldisp(editBoxPrompts);
% Get x:
caX = inputdlg(editBoxPrompts, 'X coordinates')
x = str2double(caX)
% Get rid of nans (where they didn't enter anything).\
x = x(~isnan(x))
% Get y:
caY = inputdlg(editBoxPrompts, 'Y coordinates')
y = str2double(caY)
% Get rid of nans (where they didn't enter anything).\
y = y(~isnan(y))
% Check for same lengths.
if length(x) ~= length(y)
  warningMessage = sprintf('Error: length of x (%d) does not match length of y (%d)',...
    length(x), length(y));
  uiwait(warndlg(warningMessage));
end
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Stability Analysis 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!