matlab中怎么把二维数组作为元素保存
就是有一个100*100的数组,想分成10*10的一小块,每一小块单独保存为一个元素。哪位会的筒子帮下忙啊,我的分用完了。...
就是有一个100*100的数组,想分成10*10的一小块,每一小块单独保存为一个元素。
哪位会的筒子帮下忙啊,我的分用完了。 展开
哪位会的筒子帮下忙啊,我的分用完了。 展开
4个回答
展开全部
使用函数mat2cell即可,可以把大的矩阵分为分为任意形式的子阵。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
想了半天,也没有十分明白你说的把一个矩阵保存为一个元素,究竟是怎么个说法
建议你用元胞数组试一下,看与你想的一样不?
clear all;clc;
a=floor(rand(100,100)*100);
N=size(a);n=N/10;
for i=1:n
for j=1:n
b{i,j}=a((i-1)*n+1:i*n,(j-1)*n+1:j*n);
end
end
>> size(a)
ans =
100 100
>> class(b)
ans =
cell
>> size(b)
ans =
10 10
>> b{1}
ans =
26 47 20 42 80 4 32 86 48 96
19 21 53 59 34 89 26 15 71 19
31 14 92 57 11 54 1 51 21 11
17 80 50 68 17 53 98 70 59 45
3 69 87 53 27 97 53 20 58 91
18 55 25 28 12 41 44 24 17 38
74 10 85 71 41 49 55 54 71 55
64 4 5 17 35 62 51 52 44 6
21 3 69 20 68 30 7 9 48 37
19 17 8 23 55 67 55 66 6 73
建议你用元胞数组试一下,看与你想的一样不?
clear all;clc;
a=floor(rand(100,100)*100);
N=size(a);n=N/10;
for i=1:n
for j=1:n
b{i,j}=a((i-1)*n+1:i*n,(j-1)*n+1:j*n);
end
end
>> size(a)
ans =
100 100
>> class(b)
ans =
cell
>> size(b)
ans =
10 10
>> b{1}
ans =
26 47 20 42 80 4 32 86 48 96
19 21 53 59 34 89 26 15 71 19
31 14 92 57 11 54 1 51 21 11
17 80 50 68 17 53 98 70 59 45
3 69 87 53 27 97 53 20 58 91
18 55 25 28 12 41 44 24 17 38
74 10 85 71 41 49 55 54 71 55
64 4 5 17 35 62 51 52 44 6
21 3 69 20 68 30 7 9 48 37
19 17 8 23 55 67 55 66 6 73
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题有点笼统,你得先说清楚数组中存在的数据类型,还有你是想让10*10的各个元素(如果是字符或字符串)合并成一个元素(更长的字符串)呢?还是将它们求和或者求平均数(如果是数字)之后再作为一个元素存放呢?再或者是干脆将10*10的数据单元看作一个新的[10][10]的数组存放在另一个
[10][10]的数组中呢?
[10][10]的数组中呢?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据题主的要求,适合采用repmat函数。该函数是将矩阵重新组合形成新的矩阵
函数的使用方法为B = repmat(A,m,n) 其中 A是原矩阵,m n分别对应新矩阵的行列数,B是新的矩阵
针对题主的问题,B = repmat(A,10,10,100);
结果得到的B是一个10*10*100的矩阵,其中的B(:,:,i)则是一个10*10的小矩阵
函数的使用方法为B = repmat(A,m,n) 其中 A是原矩阵,m n分别对应新矩阵的行列数,B是新的矩阵
针对题主的问题,B = repmat(A,10,10,100);
结果得到的B是一个10*10*100的矩阵,其中的B(:,:,i)则是一个10*10的小矩阵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询