当前位置:网站首页>成信大ENVI_IDL第一周实验测试:数组的简单运算+详细解析
成信大ENVI_IDL第一周实验测试:数组的简单运算+详细解析
2022-07-17 00:13:00 【炒茄子】
目录
第一周测试内容


编程
pro week_one
print, '题目1:'
a = findgen(4, 6) ; 创建一个4列6行的索引矩阵(类型是float)
b = 3 ; 创建一个值为3的int型变量
c = [3] ; 创建一个只有一个元素(值为3)的一维int型数组
d = [9, 3, 1] ; 创建一个含三个元素的一维int型数组
; 开始计算
print, a[3, 4] ; 输出三列四行的数字值
print, a[15] ; 输出第15个的值(下标从0开始数)
print, a + b ; + 这里表示两个矩阵各个元素相加, 返回的还是一个矩阵形式
print, a[1, 1] + b ; 矩阵a中第1列第1行(下标从0开始)的值与变量b的值相加
print, a + c ; 由于矩阵a是二维数组, 而c是一维数组, 所以一般相加时返回一维数组
print, a + d ; 这个相加类似
print, '题目2:'
; 创建一般数组
a = [[3, 9, 10], [2, 7, 5], [4, 1, 6]]
b = [[7, 10, 2], [5, 8, 9], [3, 1, 6]]
; 数组相加、相乘————》+、*就是数组各个元素对应相加、相乘返回一个新数组
print, a + b
print, a * b
print, '题目3(难):'
; 创建一般数组
a = [[0, 5, 3], [4, 0, 2], [0, 7, 8]]
b = [[0, 0, 1], [9, 7, 4], [1, 0, 2]]
; 保留a中大于3的结果, 其余元素全部置为0
print, (a gt 3) * a
; 保留b中大于等于4的结果, 其余元素置为9
print, (b le 4) * b + (b gt 4) * 9
; 计算a和b的均值
print, (a + b) / 2.0 ; 注意, int和int型数据相除得到仍是int型,会有精度损失————》这里将2转化为2.0可以避免
; 计算a和b的均值, 0值不纳入计算(如5 和 0的均值仍为5)
c = (a ne 0) + (b ne 0) ; 只有对应的两个均不为0那么除数是2, 如果对应其只有一个为0,那么除数为1, 如果两个都为0,那么除数为0
; print, (c le 1) + (c eq 2) * 2.0
print, (a + b) / ((c le 1) + (c eq 2) * 2.0) ; 这里对c再进行处理是为了避免除数为0的情况
end
以下是编译运行之后的结果:
IDL> week_one
% Compiled module: WEEK_ONE.
题目1:
19.0000
15.0000
3.00000 4.00000 5.00000 6.00000
7.00000 8.00000 9.00000 10.0000
11.0000 12.0000 13.0000 14.0000
15.0000 16.0000 17.0000 18.0000
19.0000 20.0000 21.0000 22.0000
23.0000 24.0000 25.0000 26.0000
8.00000
3.00000
9.00000 4.00000 3.00000
题目2:
10 19 12
7 15 14
7 2 12
21 90 20
10 56 45
12 1 36
题目3(难):
0 5 0
4 0 0
0 7 8
0 0 1
9 9 4
1 0 2
0.000000 2.50000 2.00000
6.50000 3.50000 3.00000
0.500000 3.50000 5.00000
0.000000 5.00000 2.00000
6.50000 7.00000 3.00000
1.00000 7.00000 5.00000
IDL>
————————————————————————————————————————
————————————————————————————————————————
————————————————————————————————————————
字数太少了, 这里丑一点字数, 谢谢。
IDL> week_one
% Compiled module: WEEK_ONE.
题目1:
19.0000
15.0000
3.00000 4.00000 5.00000 6.00000
7.00000 8.00000 9.00000 10.0000
11.0000 12.0000 13.0000 14.0000
15.0000 16.0000 17.0000 18.0000
19.0000 20.0000 21.0000 22.0000
23.0000 24.0000 25.0000 26.0000
8.00000
3.00000
9.00000 4.00000 3.00000
题目2:
10 19 12
7 15 14
7 2 12
21 90 20
10 56 45
12 1 36
题目3(难):
0 5 0
4 0 0
0 7 8
0 0 1
9 9 4
1 0 2
0.000000 2.50000 2.00000
6.50000 3.50000 3.00000
0.500000 3.50000 5.00000
0.000000 5.00000 2.00000
6.50000 7.00000 3.00000
1.00000 7.00000 5.00000
IDL>
边栏推荐
- 06基于STM32的智能电子药盒设计
- 性能强悍的图表组件库 ScottPlot
- MATLAB :Warning: the font “Times” is not available
- [literature reading] multi state MRAM cells for hardware neural computing
- Saber Pspice simulink电源仿真软件的区别
- Suivi du mode de méthode de l'usine
- 关于1000BASE-T1 1000BASE-TX和100BASE-T1
- Fair Multiple Decision Making Through Soft Interventions
- iFair: Learning Individually Fair Data Representations for Algorithmic Decision Making
- Foo bar 什么鬼?
猜你喜欢
随机推荐
Combined key screenshot analysis
01基于RFID的智能仓储管理系统设计
池式组件之内存池篇
openGauss Developer Day 2022|东方通诚邀您莅临“东方通生态工具分论坛”
14:07:08 ckati failed with: signal: killed
06基于STM32的智能电子药盒设计
Leveraging Semi-Supervised Learning for Fairness using Neural Networks
工程编译那点事:Makefile和cmake(一)
Apt get update error: hash checksum does not match
Hands on deep learning -- linear neural network
Hue oozie editor scheduling shell
Prohibit smart Safari from playing automatically when opening a web page
gdb+vscode进行调试1——使用CMakelist文件进行编译和调试+附加进程调试
静态库与动态库
运算放大器基本原理与参数解读
VIM 配置文件
Analysis of IGBT direct short circuit process
Set up sqoop environment
【动态规划百题强化计划】1~10(持续更新中)
The differences and usage of cookies, localstorage and sessionstorage









