Is it possible to take inputs as several sets?

2 ビュー (過去 30 日間)
DIJESH
DIJESH 2014 年 5 月 28 日
コメント済み: DIJESH 2014 年 5 月 29 日
prompt = {'Enter the co-ordinates of points eg (x1,y1,z1,x2,y2,z2,.....: '};
title = 'Environmental forces';
answer = inputdlg(prompt,title);
forces = str2num(answer{:});
The above code will read any number inputs given by the user. Since they are co-ordinates what if we want to work in such a way that it reads the value in set of 3 i.e. the first three values entered will be x1, y1, z1 then x2, y2, z2... is it possible?

採用された回答

Geoff Hayes
Geoff Hayes 2014 年 5 月 28 日
Since you are assuming that every triplet corresponds to an (x,y,z) coordinate, then just extract all the x-, y- and z-coordinate into separate vectors:
x = forces(1:3:end); % x-coordinates are 1,4,7,…
y = forces(2:3:end); % y-coordinates are 2,5,8,…
z = forces(3:3:end); % z-coordinates are 3,6,9,…
The code would need some logic to ensure that the lengths of all three vectors are the same (for the case where the user did not enter in a multiple of three values):
if length(x)~=length(y) || length(x)~=length(z)
% do some handling for case where vectors are not the same length
end
  1 件のコメント
DIJESH
DIJESH 2014 年 5 月 29 日
thank you :)

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeModeling についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by