Info

# Extracting values from vectors in an array and building a 3-dimensional array

1 view (last 30 days)
Oddi on 31 Mar 2018
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi everyone, I have the following issue. I have in total 8 arrays of the size 365x1000. The problem is, that all entries are vectors. I had to do that to sample 1000 scenarios of a year long hourly production in which days are treated as units. Is there a possibility to extract the values of the vectors and allign them along the first dimension, making it 8760 long and 1000 broad?
The next issue is, if there is a way to build an array out of all 8 arrays with 3 dimensions, but making the scenarios the third dimension? So at the end, the array should be of the form and content:
1. dimension: 8760 to show values over time
2. dimension: 8 to show values for 8 different locations
3. dimension: 1000 for the different scenarios
The code I used to produce the existing array is:
V = rand (35040,1);
v={};
for i=1:1460
Tag=zeros(1,24);
if i==1
Tag=V(i:i*24);
else
Tag=V((((i-1)*24)+1):(i*24));
end
v{i}=Tag;
end
for j = 1:1000
for k=1:365
r = randi (1460, 1);
M = v{r};
X{k,j}=M;
end
end

William Smith on 3 Apr 2018
Edited: William Smith on 3 Apr 2018
reshape
might well be what you need, combined with
cell2mat