技术标签: matlab Cody Problems个人总结
Problem 9. Who Has the Most Change?
You have a matrix for which each row is a person and the columns represent the number of quarters, nickels, dimes, and pennies that person has (in that order). What is the row index of the person with the most money?
Note for those unfamiliar with American coins: quarter = $0.25, dime = $0.10, nickel = $0.05, penny = $0.01.
Example:
Input a = [1 0 0 0; 0 1 0 0]
Output b = 1
since the first person will have $0.25 and the second person will have only $0.05.
一开始的时候没仔细看题目,以为是输出这些人拥有钱数的最大值,直接想法是通过矩阵乘法运算得到每个人的钱数,然后使用max命令得到钱数的最大值,中间一个小错误就是把max还错打成了Max,导致没办法识别。后来发现是输出那个人的序号,也就是矩阵乘法所得到的列向量中最大值对应的行数,通过在网上搜索发现使用find命令可以完成,指令如下。
[row,col] = find(___)
用在代码中的形式为,
function b = most_change(a)
Coins = [0.25;0.05;0.10;0.01];
A = a*Coins;
[row,col] = find(A == max(A));%find的用法是查找一个矩阵中某个元素,注意语法
b = row;
end
具体来看的话,这个题目都明确了是列向量,试了一下,发现下述简化后的代码同样可行,
function b = most_change(a)
Coins = [0.25;0.05;0.10;0.01];
A = a*Coins;
b = find(A == max(A));%find的用法是查找一个矩阵中某个元素,注意语法
end
【find指令学习】
k = find(X)%返回矩阵X中非零元素的序号
k = find(X,n)%返回矩阵X中前n个非零元素
k = find(X,n,direction)%这里的direction有'first'和'last'两个选项,分别代表前n个与后n个满足条件的元素,上面默认的就是first
[row,col] = find(___)%返回符合条件的元素的行和列,储存在row和col两个变量中,注意row和col也是可以改变名称的,并非固定不变
[row,col,v] = find(___)%v代表value,即在返回行列数的同时返回元素值
Ex. 在 4×4 幻方矩阵中查找前五个小于 10 的元素。
X = magic(4)
X = 4×4
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
k = find(X<10,5)
k = 5×1
2
3
4
5
7
查看 X 的对应元素。
X(k)
ans = 5×1
5
9
4
2
7
从这个Matlab官方文档中的例子又体现出了其应用矩阵运算的便捷性,Matlab中的矩阵都默认以列向量的方式进行储存,所得到的元素下标都是把矩阵中元素按每列顺序排好后的相应编号,而将这些编号组成的列向量代到某个矩阵中时,也可以十分快捷地读取出其对应的元素
另外在查找非整数值时,需要使用容差值来进行查找,否则,由于浮点舍入误差有时会生成空矩阵。
Ex.
y = 0:0.1:1
y = 1×11
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
k = find(y==0.3)
k = 1x0 empty double row vector
k = find(abs(y-0.3) < 0.001)
k = 4
Ex. 在 4×2×3 数组中查找非零元素。指定两个输出 row 和 col 以返回非零元素的行和列下标。如果输入是多维数组 (N > 2),find 返回 col 作为 X 的 N-1 个尾部维度的线性索引。
X = zeros(4,2,3);
X([1 12 19 21]) = 1
X(:,:,1) =
1 0
0 0
0 0
0 0
X(:,:,2) =
0 0
0 0
0 0
1 0
X(:,:,3) =
0 1
0 0
1 0
0 0
[row,col] = find(X)
row = 4×1
1
4
3
1
col = 4×1
1
3
5
6
从这里面的列数可以看出,多维数组的情况下,又是将这些列分别拿出来了,列数是总列数而不是4*2中的两列。
slave设备发出LL_SLAVE_FEATURE_REQ时,master若不识别该事件,应该要返回LL_UNKNOWN_RSP事件。如出现问题,会导致连接异常,修正方法是更新固件。
用OLE操作Excel(目前最全的资料)(04.2.19更新) 作者: ccrun ,如转载请保证本文档的完整性,并注明出处。欢迎光临 C++ Builder 研究,http://www.ccrun.com/doc/go.asp?id=529用OLE操作Excel(目前最全的资料)(04.2.19更新)本文档部分资料来自互联网,大部分是ccrun(老妖)在Excel
文章目录1. 更改镜像源2. 系统初始化系统升级系统清理3. 安装软件更换桌面前置工作安装mate桌面安装xfce桌面安装jetbrains-toolbox4. 卸载软件5. 扩展阅读:5.1 aptitude常用命令
力扣链接给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。 这道题要求我们删除一个链表中的val与特定值相等的节点,考察了链表的遍历和节点的删除。思路很简单,遍历链表的每个结点,直到遇到某个结点的val为指定值,然后将其删除。由于这里的链表是单向链表,要删除某个结点需要先找到该节点的前一个结点,所以我们在遍历每个结点的时候应该用前一个结点的索引去查看后一个结点的val。但是在实际...
这里只记录自己现在用到且之后会经常用到的快捷键(会多少写多少):跳转函数定义处:F12 上一个光标点:CTRL - / + 关闭当前窗口:CTRL + F4 删除当前行:ctrl + L. Ctrl+E,F —-格式化选中的代码 CTRL + K, CTRL + C注释选择的代码 CTRL + K, CTRL + U取消对选择代码的注释 ...
这家公司产品很多,有个编译器不错叫upycraft还有阿里云的套装 gravity还有代码,可以拿来用最近的对接阿里云的程序版本是0.0.9下载了以后,有个tools 里面有个get. exe运行它就能被arduino识别出来了,不用从板管理里安装...
mdev的使用方法和原理mdev是busybox自带的一个简化版的udev,适合于嵌入式的应用埸合。其具有使用简单的特点。它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件。在以busybox为基础构建嵌入式linux的根文件系统时,使用它是最优的选择。mdev使用mdev的使用在busybox中的mdev.txt文档已经将得很详细了。但作为例子
/************************************************************************* 文件名称:Driver.h * 作 者:张帆* 完成日期:2007-11-1*******************************...
推荐看完之后注意一下最后的东西一、细说百度地图的路径规划路径规划主要有这么几种1.公交路径规划1.1 市内公交规划(暂时不在这里说)1.2 跨市/省公交规划 // 导入头文件 #import <BaiduMapAPI_Search/BMKSearchComponent.h> #import <BaiduMapAPI_Map/BMKPolylineView.h> #import <BaiduMapAPI_Utils/BMKGeometry
java中标识符能不能有数字 变量、常量、类、方法的名称都是标识符,它的组成是有四种:字母、数字,_和$,标识符的开头字符不能以数字开头,保留字或关键字不能作为标识符,标识符区别大小写,数字不能开头。与C/C++语言不同的是,Java语言还可以将一些非拉丁字母包含在标识符中,这是因为Java语言使用的是Unicode字符,所有的十六进制00C0以上的Unicode字符都可以用在标识符中。c++标识...
在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的。譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止。介于这种情况,mysql经常采用主从构架,或者主主架构,这样可以实现mysql服务器的负载均衡,提升mysql服务器的性能.而关键是,可以实现mysql的数据同步复制功能,来为企业数据备份提供一种方便的机制。MySQL支持单向、异步复制,复制过程中一个服务器充当主...
1,firefox进入selenium官网https://www.seleniumhq.org/download/,点击图中位置2,进入下一个页面之后,点击图中添加按钮3,添加之后,点击确认下载,下载成功后会提示下次重启firefox时会自动安装,然后关闭firefox,重新打开后会看到firefox浏览器右上角会有selenium,点击就可以使用啦~注意:selenium安装时对firefox的...