Checking if a matrix is right dimensions.

2 Ansichten (letzte 30 Tage)
Giuseppe
Giuseppe am 24 Mär. 2014
Kommentiert: Giuseppe am 24 Mär. 2014
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,

Akzeptierte Antwort

Youssef  Khmou
Youssef Khmou am 24 Mär. 2014
Try
if length(a{1})~=length(b{1})
error(' Vectors must have same length');
end

Weitere Antworten (1)

Image Analyst
Image Analyst am 24 Mär. 2014
Bearbeitet: Image Analyst am 24 Mär. 2014
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
  1 Kommentar
Giuseppe
Giuseppe am 24 Mär. 2014
Thanks for the effort I learnt a lot from this.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by