新人又来问个问题啊,怎么表示matlab 矩阵表示中特定的一个数

查看: 166|回复: 4
新手想用矩阵键盘 实现一个显示4位数 以后好做计算器 但是有些问题 希望有大神来帮忙
一下载完程序就直接显示了 键盘根本没用
#include&reg52.h&
unsigned char code smgduan[16] =&&{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
& && && && && && && && && && && &&&0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴
sbit LSA=P2^2;& & & && & //138译码器
sbit LSB=P2^3;
sbit LSC=P2^4;
&&unsigned int temp,qian,bai,shi,
void delay( int&&i)& & & &&&//延时程序
while (i--);
int keydown()& & & & & & & && &//扫描
unsigned char h,l,&&
h=P1&0xf0;
l=P1&0x0f;
& & & & switch(h+l)
& & & & & & & & case 0x77:keyvalue=7;
& & & & & & & & case 0x7b:keyvalue=8;
& & & & & & & & case 0x7d:keyvalue=9;
& & & & & & & & case 0x7e:keyvalue='+';
& & & & & & & & case 0xb7:keyvalue=4;
& & & & & & & & case 0xbb:keyvalue=5;
& & & & & & & & case 0xbd:keyvalue=6;
& & & & & & & & case 0xbe:keyvalue='-';
& & & & & & & & case 0xd7:keyvalue=1;
& & & & & & & & case 0xdb:keyvalue=2;
& & & & & & & & case 0xdd:keyvalue=3;
& & & & & & & & case 0xde:keyvalue='*';
& & & & & & & & case 0xe7:keyvalue=0;
& & & & & & & & case 0xeb:keyvalue='=';
& & & & & & & & case 0xed:keyvalue='c';
& & & & & & & & case 0xee:keyvalue='/';
delay(1000);
& & & & int display()& & & & & & & &&&//扫描次数
& & & & {& & & &
& & & & int i,b;
& & & &&&for(i=0;i&4;i++)
& & & &&&{
& & & &&&b= keydown();
& & & &&&}
& & & && &
void DigDisplay()//显示
LSA=0;LSB=0;LSC=0;& & & & //显示千位
P0=smgduan[qian];
delay(100);& && && && & //必须有延时
LSA=1;LSB=0;LSC=0;& & & & //显示百位
P0=smgduan[bai];
delay(100);& && && && &
LSA=0;LSB=1;LSC=0;& & & & //显示十位
P0=smgduan[shi];
delay(100);& & & & & & & & & & & & & & & && &
LSA=1;LSB=1;LSC=0; & & & & & & & & & & & &&&//显示个位
P0=smgduan[ge];
delay(100);& && && && && && && && && &
&&& & & &&&
& & & & void main()
& & & && && &&&temp=display();
& & & & & & & && & qian=temp/1000;
& && && &&&bai=temp/100%10;
& && && &&&shi=temp/10%10;
& && && &&&ge=temp%10;
& & & & & & & && &&&while(1)
& & & &&&{& &
& & & & & & & &&&DigDisplay();
& & & &&&}
 看一下硬件接口正不正确?再检查软件,软件烧录的同时看一下硬件反应
 138译码器译过去是8
这个程序有很多缺欠,如:数码管不能显示+、-、*、/等等。我修改了半天也只能显示键值,无法显示四位数。发给你参考一下。
主函数部分:
#include &reg51.h&& &//包含特殊功能寄存器头文件
#include &key_down.C&
#define uint unsigned int& &&&//定义uint=unsigned int
#define uchar unsigned char& &//定义uchar=unsigned char
#define dula P0& & & && && && && && &//段选
uchar qian,bai,shi,
sbit LSA=P2^2;& && && && && & //138译码器
sbit LSB=P2^3;
sbit LSC=P2^4;
uint code du_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};& & //段码表
void Delay_pro(uint xms)
& & & & uint i,j;
& & & & for(i=i&0;i--)& & //i=xms即延时约xms毫秒
& & & && &for(j=110;j&0;j--);
void display(uchar qian,uchar bai,uchar shi,uchar ge)
&&temp=(KeyPro());
&&qian=temp/1000;& && & //分离千位
&&bai=temp%;& & //分离百位
& & & & shi=temp%100/10;& && &//分离十位
& & & & ge=temp%10;& && && &&&//分离个位
&&LSA=0;LSB=0;LSC=1;& & //显示千位位码
&&dula=du_code[qian];& &//显示千位段码
&&Delay_pro(5);& & & &
&&LSA=1;LSB=0;LSC=1;& & //显示百位位码
&&dula=du_code[bai];& & //显示百位段码
&&Delay_pro(5);
&&LSA=0;LSB=1;LSC=1;& & //显示十位位码& &
&&dula=du_code[shi];& & //显示百位段码
&&Delay_pro(5);
&&LSA=1;LSB=1;LSC=1;& & //显示个位位码& &
&&dula=du_code[ge];& &&&//显示百位段码
&&Delay_pro(5);
void main()
& & & & while(1)
& & & & {&&
& & & &&&display(qian,bai,shi,ge);
矩阵扫描部分:
/*矩阵键盘*/
#include &reg51.h& //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define KeyPort P1
unsigned char Value,n=0;
void Delay_key(unsigned int i)
&&unsigned int a,b;
&&for(a=0;a&i;a++)
& & for(b=0;b&110;b++);
unsigned char KeyScan(void)& & //键盘扫描函数,使用行列反转扫描法
&&unsigned char cord_h,cord_l; //行列值中间变量
&&KeyPort=0x0f;& && && && && & //行线输出全为0
&&cord_h=KeyPort&0x0f;& && && &//读入列线值
&&if(cord_h!=0x0f)& && && && & //先检测有无按键按下
& & Delay_key(10);& && && && & //去抖
& & if((KeyPort&0x0f)!=0x0f)
& && &cord_h=KeyPort&0x0f;& &&&//读入列线值
& && &KeyPort=cord_h|0xf0;& &&&//输出当前列线值
& && &cord_l=KeyPort&0xf0;& &&&//读入行线值
& && &while((KeyPort&0xf0)!=0xf0); //等待松开并输出
& && &return(cord_h+cord_l);& && & //键盘最后组合码值
&&}return(0xff);&&//返回该值
unsigned char KeyPro(void)
&&switch(KeyScan())
& & case 0xee:Value=1;& &//0 按下相应的键显示相对应的码值
& & case 0xde:Value=2;& &//1
& & case 0xbe:Value=3;& &//2
& & case 0x7e:Value=10;& &
& & case 0xed:Value=4;& &//4
& & case 0xdd:Value=5;& &//5
& & case 0xbd:Value=6;& &//6
& & case 0x7d:Value=11;&&//7& && &
& & case 0xeb:Value=7;& &//8
& & case 0xdb:Value=8;& &//9
& & case 0xbb:Value=9;& &//a
& & case 0x7b:Value=12;&&//b& &
& & case 0xe7:Value=13;&&//c
& & case 0xd7:Value=0;& &//d
& & case 0xb7:Value=14;&&//e
& & case 0x77:Value=15;&&//f
//&&k=(k*10)+V
Powered by是时候,换个姿势关注TA
关注 功能升级,收割 TA 的最新动态
扫我下载最新九游APP
查看: 433|回复: 25
最后登录积分13537精华0帖子
Lv14渐入佳境, 经验 13537, 距离下一级还需 63 经验
第一优先级,为矩阵选择,以8个合金一套的为例,第一组为防御矩阵,第二组为攻击矩阵,六个合金一组的有三个矩阵,中间矩阵的属性攻防均衡。
第二优先级,为颜色成套,以攻击属性为例,四个合金一组的紫色→橙色攻击提升180,六个合金的提升310,八个合金的提升440。
第三优先级,合金属性选择,后排攻血为主,攻防为辅,前排血防为主,攻血为辅。
最后登录积分18988精华1帖子
您对该GM的评价:(登录并绑定手机即可获得投票机会。立刻/)
最后登录积分128057精华2帖子
<span title="万经验
来自九游APP
最后登录积分2554精华0帖子
Lv7略有小成, 经验 2554, 距离下一级还需 446 经验
来自九游APP
最后登录积分7512精华0帖子
Lv12渐入佳境, 经验 7512, 距离下一级还需 1488 经验
来自九游APP
最后登录积分9478精华0帖子
Lv13渐入佳境, 经验 9478, 距离下一级还需 1522 经验
来自九游APP
最后登录积分19461精华0帖子
Lv16炉火纯青, 经验 19461, 距离下一级还需 539 经验
来自九游APP
最后登录积分3922精华0帖子
Lv8略有小成, 经验 3922, 距离下一级还需 78 经验
来自九游APP
最后登录积分13537精华0帖子
Lv14渐入佳境, 经验 13537, 距离下一级还需 63 经验
来自九游APP
最后登录积分26113精华19帖子
Lv18炉火纯青, 经验 26113, 距离下一级还需 1887 经验
来自九游APP
通过九游高手认证后获得(有效期:永久)
参加王者荣耀活动获得(有效期:30天)
在爱自拍版块论坛活跃,参加活动获得(有效期:30天)
凡人修仙传
参与凡人修仙传论坛活动获得(有效期:30天)
问道(水)
在问道论坛版块参与活动获得(有效期:30天)
魔法禁书目录
参与魔法禁书目录论坛活动获得(有效期:30天)
每月版主评优分数达到明星版主标准授予(有效期:30天)
参与囧图趣事活动获得(有效期30天)
参与君王3D论坛活动获得(有效期:30天)
通过论坛男生认证,鉴定为男生身份的友友(有效期:长期)
成为版主且参与版主评优,月结优秀获得(有效期:30天)
通过参与论坛春节活动获得(有效期:90天)
安卓平台下载
苹果平台下载主题 : 新手请教一个关于数组相同内容过滤并将重复名称的数值进行相加的问题~
级别: 新手上路
UID: 534962
可可豆: 242 CB
威望: 139 点
在线时间: 364(时)
发自: Web Page
来源于&&分类
新手请教一个关于数组相同内容过滤并将重复名称的数值进行相加的问题~&&&
各位坛友好,新手请教一个关于数组的问题,有两个数组,一个存放数值,一个存放名称,如何做才能把名称相同的数据进行相加,就像下面这样:
&#160;&#160;&#160;&#160;
//原始数据
&#160;&#160;&#160;&#160;NSMutableArray *valuesArray = [[NSMutableArray alloc] initWithObjects:@&10&, @&20&, @&30&, @&40&, @&30&, @&40&, @&50&, @&60&, nil];
&#160;&#160;&#160;&#160;NSMutableArray *namesArray = [[NSMutableArray alloc] initWithObjects:@&Apple&, @&Bananas&, @&Cherry&, @&Durian&, @&Apple&, @&Bananas&, @&Cherry&, @&Durian&, nil];
&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;//这里代码该如何写才能进行namesArray这个数组相同名称的对比并将名称相同的数据进行相加呢?
&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;//过滤后的数据
&#160;&#160;&#160;&#160;NSArray *realValuesArray = [NSArray arrayWithObjects:
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @&20&, @&40&, @&60&, @&80&, nil];
&#160;&#160;&#160;&#160;NSArray *realNamesArray = [NSArray arrayWithObjects:
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @&Apple&, @&Bananas&, @&Cherry&, @&Durian&, nil];
&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;NSLog(@&原始valuesArray = %@&, valuesArray);
&#160;&#160;&#160;&#160;NSLog(@&原始namesArray = %@&, namesArray);
&#160;&#160;&#160;&#160;NSLog(@&过滤后realValuesArray = %@&, realValuesArray);
&#160;&#160;&#160;&#160;NSLog(@&过滤后realNamesArray = %@&, realNamesArray);
想要的结果:输出:原始valuesArray = (&#160;&#160;&#160;&#160;100,&#160;&#160;&#160;&#160;20,&#160;&#160;&#160;&#160;30,&#160;&#160;&#160;&#160;40,&#160;&#160;&#160;&#160;10,&#160;&#160;&#160;&#160;20,&#160;&#160;&#160;&#160;30,&#160;&#160;&#160;&#160;40)原始namesArray = (&#160;&#160;&#160;&#160;Apple,&#160;&#160;&#160;&#160;Bananas,&#160;&#160;&#160;&#160;Cherry,&#160;&#160;&#160;&#160;Durian,&#160;&#160;&#160;&#160;Apple,&#160;&#160;&#160;&#160;Bananas,&#160;&#160;&#160;&#160;Cherry,&#160;&#160;&#160;&#160;Durian)过滤后realValuesArray = (&#160;&#160;&#160;&#160;20,&#160;&#160;&#160;&#160;40,&#160;&#160;&#160;&#160;60,&#160;&#160;&#160;&#160;80)过滤后realNamesArray = (&#160;&#160;&#160;&#160;Apple,&#160;&#160;&#160;&#160;Bananas,&#160;&#160;&#160;&#160;Cherry,&#160;&#160;&#160;&#160;Durian)[ 此帖被AppleloveMe在 10:04重新编辑 ]
级别: 新手上路
UID: 534962
可可豆: 242 CB
威望: 139 点
在线时间: 364(时)
发自: Web Page
忘了上传截图了,我要做的是个图表小程序,需要提供两个数组来进行数据初始化,下面是这两组数据代码如下:原始数组:过滤后数组:有什么方法或者自带的函数可以将两个数组放在一起比较吗?[ 此帖被AppleloveMe在 10:04重新编辑 ]
级别: 圣骑士
UID: 332950
可可豆: 1222 CB
威望: 1009 点
在线时间: 368(时)
发自: Web Page
级别: 圣骑士
UID: 332950
可可豆: 1222 CB
威望: 1009 点
在线时间: 368(时)
发自: Web Page
还有你为什么不用键值对
级别: 新手上路
UID: 534962
可可豆: 242 CB
威望: 139 点
在线时间: 364(时)
发自: Web Page
问题解决了,我的这两个数组的值和名称是一一对应的。首先写个for循环,判断值数组为不为空,然后再添加进数组,方法比较笨,不过也实现了相应的功能了。以下是代码仅供参考。
&&&&//原始数据
&&&&NSMutableArray *valuesArray = [[NSMutableArray alloc] initWithObjects:@&10&, @&20&, @&30&, @&40&, @&30&, @&40&, @&50&, @&60&, nil];
&&&&NSMutableArray *namesArray = [[NSMutableArray alloc] initWithObjects:@&Apple&, @&Banana&, @&Cherry&, @&Durian&, @&Apple&, @&Banana&, @&Cherry&, @&Durian&, nil];
&&&&//去重
&&&&int appleValue&&= 0; // 购入苹果金额
&&&&int bananaValue = 0; // 购入香蕉金额
&&&&int cherryValue = 0; // 购入樱桃金额
&&&&int durianValue = 0; // 购入榴莲金额
&&&&NSString * apple&&= @&Apple&;&&// 苹果
&&&&NSString * banana = @&Banana&; // 香蕉
&&&&NSString * cherry = @&Cherry&; // 樱桃
&&&&NSString * durian = @&Durian&; // 榴莲
&&&&for (int i = 0; i & [namesArray count];i++) {
&&&&&&&&NSString *tmpName = @&&; //存放临时类型名
&&&&&&&&for (int j = 0; j & [valuesArray count]; j++) {
&&&&&&&&&&&&
&&&&&&&&&&&&tmpName = namesArray;
&&&&&&&&&&&&int tmpValue = 0; //存放临时金额
&&&&&&&&&&&&
&&&&&&&&&&&&if ([tmpName isEqualToString:apple]) {
&&&&&&&&&&&&&&&&tmpValue = [valuesArray intValue];
&&&&&&&&&&&&&&&&appleValue += tmpV
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&if ([tmpName isEqualToString:banana]) {
&&&&&&&&&&&&&&&&tmpValue = [valuesArray intValue];
&&&&&&&&&&&&&&&&bananaValue += tmpV
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&if ([tmpName isEqualToString:cherry]) {
&&&&&&&&&&&&&&&&tmpValue = [valuesArray intValue];
&&&&&&&&&&&&&&&&cherryValue += tmpV
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&if ([tmpName isEqualToString:durian]) {
&&&&&&&&&&&&&&&&tmpValue = [valuesArray intValue];
&&&&&&&&&&&&&&&&durianValue += tmpV
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&NSMutableArray *tmpValues = [[NSMutableArray alloc] init];
&&&&NSMutableArray *tmpNames&&= [[NSMutableArray alloc] init];
&&&&if (appleValue&&!= 0) {
&&&&&&&&[tmpValues addObject:[NSString stringWithFormat:@&%d&,appleValue]];
&&&&&&&&[tmpNames addObject:apple];
&&&&if (bananaValue != 0) {
&&&&&&&&[tmpValues addObject:[NSString stringWithFormat:@&%d&,bananaValue]];
&&&&&&&&[tmpNames addObject:banana];
&&&&if (cherryValue != 0) {
&&&&&&&&[tmpValues addObject:[NSString stringWithFormat:@&%d&,cherryValue]];
&&&&&&&&[tmpNames addObject:cherry];
&&&&if (durianValue != 0) {
&&&&&&&&[tmpValues addObject:[NSString stringWithFormat:@&%d&,durianValue]];
&&&&&&&&[tmpNames addObject:durian];
&&&&NSLog(@&购入苹果金额 = %d&, appleValue);
&&&&NSLog(@&购入香蕉金额 = %d&, bananaValue);
&&&&NSLog(@&购入樱桃金额 = %d&, cherryValue);
&&&&NSLog(@&购入榴莲金额 = %d&, durianValue);
&&&&NSLog(@&原始的金额数组 = %@&, valuesArray);
&&&&NSLog(@&原始的名称数组 = %@&, namesArray);
&&&&NSLog(@&过滤后金额数组 = %@&, tmpValues);
&&&&NSLog(@&过滤后名称数组 = %@&, tmpNames);
过滤后如图:
级别: 新手上路
UID: 534962
可可豆: 242 CB
威望: 139 点
在线时间: 364(时)
发自: Web Page
额,忘了上传打印信息了。以下是打印信息: 09:48:19.654 arrayTest[744:16447] 购入苹果金额 = 40 09:48:19.655 arrayTest[744:16447] 购入香蕉金额 = 60 09:48:19.655 arrayTest[744:16447] 购入樱桃金额 = 80 09:48:19.655 arrayTest[744:16447] 购入榴莲金额 = 100 09:48:19.655 arrayTest[744:16447] 原始的金额数组 = (&&&&10,&&&&20,&&&&30,&&&&40,&&&&30,&&&&40,&&&&50,&&&&60) 09:48:19.656 arrayTest[744:16447] 原始的名称数组 = (&&&&Apple,&&&&Banana,&&&&Cherry,&&&&Durian,&&&&Apple,&&&&Banana,&&&&Cherry,&&&&Durian) 09:48:19.656 arrayTest[744:16447] 过滤后金额数组 = (&&&&40,&&&&60,&&&&80,&&&&100) 09:48:19.656 arrayTest[744:16447] 过滤后名称数组 = (&&&&Apple,&&&&Banana,&&&&Cherry,&&&&Durian)
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版将一个矩阵化为阶梯形矩阵后,如何判定原矩阵有几个子式为零?
全部答案(共1个回答)
的子式是否为0还未可知。如果把一个矩阵化为行最简形之后,就可以立即看出有几个子式不等于0,剩下的子式就全等于0了。
在线性代数中,矩阵是行阶梯形矩阵(Row-Echelon Form),如果:
所有非零行(矩阵的行至少有一个非零元素)在所有全零行的上面。即全零行都在矩阵的底部...
阶梯形矩阵:一个矩阵称为阶梯形矩阵,如果满足:① 如果它有零行,则都出现在下面.② 如果它有非零行,则每个非零行的第一个非0元素所在的列号自上而下严格单调递增....
问题一:相等。这个很直观
问题二:没有关系。设a1,a2为两个三维向量,{a1,a2}组成一个向量空间,那么此向量空间的维数为2维,只取决于包含的向量个数,有...
小写字母表示矩阵的元素,a&i,j&(&i,j&是下标)表示这个元素是矩阵第i行、第j列的元素;
大写字母表示矩阵,A&m×n&(&m×n&是下标),表示这个...
答: 你好,这个数据应该,不正常,你一定要去找医生看一下,看看这是几个月胎儿的,孕酮校准
答: 第一个华罗庚
第二个陈景润
答: 关于应用概率统计在重庆大学继续教育学院脱产本科2006级的期末考试中所涉及的考试内容!
1、参数估计2、假设检验等复习内容
答: 珠海同济数学培训班好还是创思教育的数学班好?
南京MBA培训 衍坤教育数学课是谁教的?教的怎么样呀?本人数学不好,希望找个好点...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区}

我要回帖

更多关于 稀疏矩阵的三元组表示 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信