How to store the output values in matrix?

5 Ansichten (letzte 30 Tage)
N M Channabasavayya
N M Channabasavayya am 27 Apr. 2019
Kommentiert: Walter Roberson am 27 Apr. 2019
I have the following program for logistic map function,
function x=logistic(n,level,a,x0)
%Syntax: x=logistic(n,level,a,x0)
if nargin<1 | isempty(n)==1
n=64;
else
% n must be scalar
if sum(size(n))>2
error('n must be scalar.');
end
% n must be positive
if n<0
error('n must be positive.');
end
% n must be an integer
if round(n)-n~=0
error('n must be an integer.');
end
end
if nargin<2 | isempty(level)==1
level=0;
else
% level must be a scalar
if sum(size(level))>2
error('level must be scalar.');
end
% level must be positive
if level<0
error('level must be positive.');
end
end
if nargin<3 | isempty(a)==1
a=4;
else
% a must be scalar
if sum(size(a))>2
error('a must be scalar.');
end
end
if nargin<4 | isempty(x0)==1
x0=0.1;
else
% x0 must be scalar
if sum(size(x0))>2
error('x0 must be scalar.');
end
end
% Initialize
x(1,1)=a*x0*(1-x0);
% Simulate
for i=2:n
x(i,1)=a*x(i-1,1)*(1-x(i-1,1));
disp(x);
end
% Add normal white noise
x=x+randn(n,1)*level*std(x);
after running the program I get output values as
0.3600
0.9216
0.2890
0.8219
0.5854
0.9708
0.1133
0.4020
0.9616
0.1478
0.5039
0.9999
0.0002
0.0010
0.0039
0.0157
0.0617
0.2317
0.7121
0.8200
0.5904
0.9673
0.1264
0.4416
0.9864
0.0537
0.2034
0.6481
0.9122
0.3203
0.8709
0.4498
0.9899
0.0400
0.1535
0.5199
0.9984
0.0063
0.0251
0.0979
0.3533
0.9139
0.3148
0.8628
0.4736
0.9972
0.0111
0.0440
0.1684
0.5600
0.9856
0.0568
0.2144
0.6738
0.8792
0.4249
0.9775
0.0881
0.3214
0.8724
0.4453
0.9880
0.0473
0.1804
Now I want to store these values in a 8*8 matrix,how to that?
Please do help to where the required line of code should be added to the above program.
Thank you.

Antworten (1)

madhan ravi
madhan ravi am 27 Apr. 2019
Bearbeitet: madhan ravi am 27 Apr. 2019
Simply reshape x:
reshape(x,8,[]) % or transpose according to your orientation
Note: Preallocating a Variable is an essential step.
  2 Kommentare
N M Channabasavayya
N M Channabasavayya am 27 Apr. 2019
how to preallocate a variable?
Walter Roberson
Walter Roberson am 27 Apr. 2019
x = zeros(n,1);
before you assign to x(1,1)
However, you should not be storing the values in an 8 x 8 matrix. The number of values returned in x is n, which will not necessarily be 64. If you wanted a rectangular matrix, you should factor n to determine the size to make it as a rectangle -- and keep in mind that the user might have provided an n that is a prime number.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by