Arrays of unknown size as input

3 views (last 30 days)
Destro Katramis
Destro Katramis on 1 Jun 2020
Edited: Destro Katramis on 1 Jun 2020
Hello everyone,
I want to have an input of 2 arrays which will either be inputed number by number from the user or as a desired range and step. That means that the array sizes won't be known a priori. Thanks a lot in advance!
For clarification:
  2 Comments
Mohammad Sami
Mohammad Sami on 1 Jun 2020
You have to consider what kind of calculations are you doing on your inputs.
As long as your calculations accept variable length inputs, the dimensions would not matter.
Example if you are doing element wise calculation, the dimensions would not matter.
Destro Katramis
Destro Katramis on 1 Jun 2020
Thanks a lot for your answer Mohammad!
The code is looking like this:
x=1:100;
y=1:200;
n=length(x);
k=length(y);
count=0;
for i=1:n
for j=1:k
c=sqrt(x(i)^2+y(j)^2);
if c==fix(c)
count=count+1;
pyth(1,count)=x(i);
pyth(2,count)=y(j);
end
end
end
And I would like to remove the first two lines and replace them with the inputs of the user (following the procedure as stated above).

Sign in to comment.

Answers (1)

KSSV
KSSV on 1 Jun 2020
You need not to worry about the dimensions of input. You can do what you wanted without loop. Check the below code.
[X,Y] = meshgrid(x,y) ;
C = sqrt(X.^2+Y.^2) ;
idx = C == fix(C) ;
pyth = [X(idx) Y(idx)] ;
So if your question is to ask, how to initialize an unknown array. You can do the following.
x=1:100;
y=1:200;
n=length(x);
k=length(y);
count=0;
pyth = NaN([],2) ; % as you know there are two columns
for i=1:n
for j=1:k
c=sqrt(x(i)^2+y(j)^2);
if c==fix(c)
count=count+1;
pyth(count,1)=x(i);
pyth(count,2)=y(j);
end
end
end
  2 Comments
Destro Katramis
Destro Katramis on 1 Jun 2020
Thanks a lot for your answer KSSV and cudos for the first part, it reduced the number of lines by a significant amount!
If I understand your suggestion correctly, my question is not about the initialization of the array "pyth" before the loop, but as to how to ask the user for input concerning the arrays "x" and "y" (which can be of any size or entered number by number).
KSSV
KSSV on 1 Jun 2020
Ohh....that is pretty simple. Read about the function input.

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!