作业帮 > 综合 > 作业

matlab中定义 s a 求 a(s)的

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/27 16:13:45
matlab中定义 s a 求 a(s)的
matlab中定义 s a 求 a(s)的结果如下,但是不明白为什么是这样的,因为a(s)应该是当s=1时a(s)是取第1个元素,而当s=2时a(s)是取第2个元素,而当s=10时a(s)是取第10个元素,但现在s值均为1或0,怎么正好取出的是s==1的值呢?
s =
0
0
1
1
0
0
1
0
1
1
>> a=[1:10]'
a =
1
2
3
4
5
6
7
8
9
10
>> a(s)
ans =
3
4
7
9
10
应该你说的是对的,但是习惯上a(1,:),a(2,:),a(3,:),分别表示第1 2 3行的a
这里a(s),a和s是同维数 是另一种用法吗?
matlab中定义 s a 求 a(s)的
楼主理解的不对,matlab 是这样
a(s),a和s是同维数一一对应的矩阵.
其中a是由各种各样的元素构成的.而s的各个元素不是0就是1.
此时a(s)表示对a的元素的一种“筛选”.对于s里是1的位置,a对应的位置的数就被选出来,对于s里是0的位置,a对应位置的数则不选.
针对你的例子,就是
3 4 7 9 10 被选了出来.
补充:
嗯 对 a(1,:)这样的用法,括号里是2个数(当然也包括:和end之类的特殊符号),此时表示按下标选取元素. 但是a(s)的例子里,你的s也是个向量或者矩阵嘛,参数类型不同,函数代表的含义就不同了,这在编程技术里叫做“重载”