现有一二维数组要进行Z字形降维操作,
降维扫描顺序如下所示:
0 1 5 6 14 15 27 28
2 4 7 13 16 26 29 42
3 8 12 17 25 30 41 43
9 11 18 24 31 40 44 53
10 19 23 32 39 45 52 54
20 22 33 38 46 51 55 60
21 34 37 47 50 56 59 61
35 36 48 49 57 58 62 63
求一个降维操作的小程序 降维成一行的一位数组;
急求~~谢谢!!
Matlab 二维数组Z字形降维操作
答案:2 悬赏:70
解决时间 2021-03-15 10:05
- 提问者网友:北故人
- 2021-03-15 03:21
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-03-15 04:19
假设 data 是8×8数据矩阵
order = [
0 1 5 6 14 15 27 28
2 4 7 13 16 26 29 42
3 8 12 17 25 30 41 43
9 11 18 24 31 40 44 53
10 19 23 32 39 45 52 54
20 22 33 38 46 51 55 60
21 34 37 47 50 56 59 61
35 36 48 49 57 58 62 63
]
当然也可以把 order就建成一个向量, 这样下面就不用reshape它了
result = sortrows( [reshape(data, [], 1) reshape(order, [], 1)], 2);
结果取 result(:, 1) 是个列向量
order = [
0 1 5 6 14 15 27 28
2 4 7 13 16 26 29 42
3 8 12 17 25 30 41 43
9 11 18 24 31 40 44 53
10 19 23 32 39 45 52 54
20 22 33 38 46 51 55 60
21 34 37 47 50 56 59 61
35 36 48 49 57 58 62 63
]
当然也可以把 order就建成一个向量, 这样下面就不用reshape它了
result = sortrows( [reshape(data, [], 1) reshape(order, [], 1)], 2);
结果取 result(:, 1) 是个列向量
全部回答
- 1楼网友:绝望伪装
- 2021-03-15 05:30
clear;
clc;
a = -10:0.5:10; %%% a b 根据你是实际情况定
b = -5:0.5:5;
[a,b] = meshgrid(a,b);
z = sin(a)+cos(b); %%% 函数根据你的情况改
plot3(a,b,z) %%%% 当前图
figure(2)
[x,y] = solve('x+y-a','x-y-b','x','y'); %%% 先坐标转换
x = subs(x,{'a','b'},{a,b});
y = subs(y,{'a','b'},{a,b});
z = sin(x+y)+cos(x-y); %%%% 相应的z也要坐标转换
plot3(x,y,z)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯