Checking if a matrix is right dimensions.
2 ビュー (過去 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 で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!