matlab中怎么把二维数组作为元素保存

2024-11-29 23:47:58
推荐回答(4个)
回答1:

使用函数mat2cell即可,可以把大的矩阵分为分为任意形式的子阵。

回答2:

想了半天,也没有十分明白你说的把一个矩阵保存为一个元素,究竟是怎么个说法
建议你用元胞数组试一下,看与你想的一样不?
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

回答3:

问题有点笼统,你得先说清楚数组中存在的数据类型,还有你是想让10*10的各个元素(如果是字符或字符串)合并成一个元素(更长的字符串)呢?还是将它们求和或者求平均数(如果是数字)之后再作为一个元素存放呢?再或者是干脆将10*10的数据单元看作一个新的[10][10]的数组存放在另一个
[10][10]的数组中呢?

回答4:

根据题主的要求,适合采用repmat函数。该函数是将矩阵重新组合形成新的矩阵
函数的使用方法为B = repmat(A,m,n) 其中 A是原矩阵,m n分别对应新矩阵的行列数,B是新的矩阵
针对题主的问题,B = repmat(A,10,10,100);
结果得到的B是一个10*10*100的矩阵,其中的B(:,:,i)则是一个10*10的小矩阵