How to combine this value ?

1 view (last 30 days)
Actually i want to store the value, for example
clc
clear all
close all
for k=1:2
allR11=rand(1,10);
d6=length(allR11);
j1=1;
for op=1:d6
allR1_1(j1) = allR11(op)*rand;
op=op+1;
j1=j1+1;
end
d=allR1_1
end
After running this code you will get the 'd' values for two time that is when an 'k=1 and k=2' in for loop.
And now i want to store the values of 'd' values like this
sol=[0.1823 0.0894 0.0315 0.1297 0.5409 0.2566 0.2421 0.3433 0.1777 0.0256
0.0082 0.6125 0.3215 0.0009 0.1636 0.1705 0.0813 0.0707 0.3140 0.1515];
in this 'sol', it has 20 columns, it's like, it's storing both the values of 'd' when 'k=1 and k=2'
so finally i want to get like that 'sol'

Accepted Answer

Stalin Samuel
Stalin Samuel on 4 Feb 2015
sol=[allR11 allR1_1]
  2 Comments
Stalin Samuel
Stalin Samuel on 4 Feb 2015
clc
clear all
close all
sol=0
for k=1:2
allR11=rand(1,10);
d6=length(allR11);
sol = allR11
j1=1;
for op=1:d6
allR1_1(j1) = allR11(op)*rand;
op=op+1;
j1=j1+1;
end
sol (end+1:numel(allR11)+numel(allR1_1))= allR1_1
d=allR1_1
end

Sign in to comment.

More Answers (3)

karthik
karthik on 3 Feb 2015
Edited: karthik on 3 Feb 2015
Your question is not clear.. How do you want the solution to be?
sol=[0.1823 0.0894 0.0315 0.1297 0.5409 0.2566 0.2421 0.3433 0.1777 0.0256
0.0082 0.6125 0.3215 0.0009 0.1636 0.1705 0.0813 0.0707 0.3140 0.1515];
Is this the solution you get after running your code?
  1 Comment
Arul prasath
Arul prasath on 4 Feb 2015
ya after running the code i want to get all the 20 values in one variable ...

Sign in to comment.


Roger Stafford
Roger Stafford on 4 Feb 2015
If you want all twenty values to be stored in 'sol', you need to move the line
j1=1;
to execute before entering the outer 'for' loop:
...
j1 = 1;
for k=1:2
...
That way you will get twenty successive values placed in the 'sol' array.
As your code is at present, j1 is reset to 1 so you write over the ten values in 'sol' with the second ten, and the first ten are therefore lost forever. All that remains is the display of them on your screen.
Note: The line "op=op+1" is totally useless. The inner for-loop
for op=1:d6
does that for you automatically, and in fact will overwrite any changes you make to 'op' within the loop. You should never modify the 'for' index within its loop.
  2 Comments
Roger Stafford
Roger Stafford on 4 Feb 2015
I already told you how to modify your code. Move the line "j1=1;" to a position before you enter the "for k=1:2" loop.

Sign in to comment.


karthik
karthik on 4 Feb 2015
clc
clear all
close all
j1=1;
for k=1:2
allR11=rand(1,10);
d6=length(allR11);
for op=1:d6
allR1_1(j1) = allR11(op)*rand;
%op=op+1;
j1=j1+1
end
end
This will work

Community Treasure Hunt

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

Start Hunting!