making dataset 3D data function
5 views (last 30 days)
Show older comments
I have 48 variables with 267000*40 elements. I want to make this into datasets that looks like
- 267000*40*48
- 267000*48=> for this one I want to find the mean of the rown and do the same thing as before.
My question is how do I make a function that gives me this without having to do it individually:
this is what I know I should do for each variable
function [data]=datacreate(input)
A=input;
A(isnan(A))=0;
meanA=mean(A,2);
data(:,2)=meanA;
but when I want to do it all at once for all 48 variables, how am I to do this?
function [data]=datacreate(input1,...,input48) %is this notation correct?
for i=1:48 % can this be done without for loop?
A=input; % unsure here, should it be inputi?
A(isnan(A))=0;
meanA=mean(A,2);
data(:,i)=meanA;
i=i+1;
end
data;
Any kind of help is appreciated. Thank you.
0 Comments
Accepted Answer
Ridwan Alam
on 9 Jan 2020
Let's assume your variables are named as 'input01', 'input02', ... 'input48'.
my3Ddata = [];
myMeanData = [];
varnames = whos('input*');
for v = 1:length(varnames)
currInput = eval(varnames(v).name);
currInput(isnan(currInput)) = 0;
my3Ddata = cat(3,my3Ddata,currInput);
currMean = mean(currInput,2);
myMeanData = [myMeanData, currMean];
end
Hope this helps.
0 Comments
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!