フィルターのクリア

Parametric variable names

6 ビュー (過去 30 日間)
Amarpal
Amarpal 2011 年 12 月 20 日
Hi
Here's my question: Suppose there is an array called 'var' of size 40*1. I want to write a for loop that divides 'var' into four different arrays, say, 'var1','var2','var3' & 'var4' where each of them will pick 10 values from 'var'. So, I want the loop counter, say i, to be used in the array name,i.e.'var' as var{i}.
I'm trying to use the function 'genvarname' to create the parametric names, but I'm not able to assign values to those names...Here's what I'm trying:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% script - newone.m
close
clear all
var = (1:40)';
divsize = 10;
counter = length(var)/divsize;
holdvar = genvarname({'var1','var1','var1','var1'}); % Also I want this step to go parametric....like var1 * ones(counter,1),must generate the number of strings needed. I know the way I've used might be incorrect, but used it just to illustrate the purpose.
%%%%%%%%%%%%%%%%%%%%%%%%
output at this stage:
holdvar =
'var1' 'var11' 'var12' 'var13'
%%%%%%%%%%%%%%%%%%%%%%%%
for i = 1:counter
holdvar{i} = var((((i-1)*divsize)+1):(i*divsize));
end
holdvar = cell2mat(holdvar);
%%%%%%%%%%%%
output:
holdvar =
1 11 21 31
2 12 22 32
3 13 23 33
4 14 24 34
5 15 25 35
6 16 26 36
7 17 27 37
8 18 28 38
9 19 29 39
10 20 30 40
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The output I'm looking for is this:
var1 =
1
2
3
4
5
6
7
8
9
10
var11 =
11
12
13
14
15
16
17
18
19
20
var13 =
21
22
23
24
25
26
27
28
29
30
var14 =
31
32
33
34
35
36
37
38
39
40
Could you kindly guide me in the right direction. Also any other approach that does the same job is welcome!
Many Thnaks Amar

回答 (1 件)

Sean de Wolski
Sean de Wolski 2011 年 12 月 20 日
The method you have now is the recommended one!

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by