1、个人收集整理 勿做商业用途核心算法步骤如下:输入:传感矩阵,采样向量,稀疏度;输出:的-稀疏逼近;初始化:残差,索引集循环执行步骤15:步骤一:找出残差与传感矩阵的列积中最大值所对应的的脚注,即步骤2:更新索引集,记录找到的传感矩阵中的重建原子集合步骤3:由最小二乘法得到步骤4:更新残差步骤5:判断是否满足,若满足则迭代停止;若不满足,则执行步骤1.基于android的简单计算器1、 界面截图2、 布局文件总体是一个LinearLayout布局,每一行的按钮也使用了此布局.当然,每一行也可以在TableLayout里使用TableRow。虽然使用其他布局可能会简洁点,不过我个人喜欢使用Line
2、arLayout布局。 !- android:cursorVisible=false 输入框中光标不可见 LinearLayout android:layout_width=fill_parent android:layout_height=”wrap_content” android:paddingRight=”5dp android:paddingLeft=5dp android:orientation=”horizontal” Button android:id=”+id/button_bk android:layout_width=”0dp” android:layout_height
3、=wrap_content android:text=BK android:layout_weight=”1 / Button android:id=+id/button_c android:layout_width=0dp android:layout_height=wrap_content android:text=”C” android:layout_weight=”1” / /LinearLayout Button android:id=+id/button_mc” android:layout_width=0dp” android:layout_height=wrap_content
4、 android:text=MC android:layout_weight=”1 / Button android:id=+id/button_7” android:layout_width=0dp” android:layout_height=wrap_content android:text=”7 android:layout_weight=”1 / Button android:id=+id/button_8 android:layout_width=”0dp android:layout_height=”wrap_content android:text=8” android:lay
5、out_weight=1 / Button android:id=+id/button_9 android:layout_width=0dp” android:layout_height=”wrap_content” android:text=9” android:layout_weight=”1 / Button android:id=”+id/button_div” android:layout_width=”0dp android:layout_height=wrap_content android:text=”/” android:layout_weight=”1 / /LinearL
6、ayout LinearLayout android:layout_width=fill_parent” android:layout_height=wrap_content android:paddingRight=5dp” android:paddingLeft=”5dp android:orientation=horizontal” Button android:id=+id/button_mr android:layout_width=”0dp android:layout_height=”wrap_content android:text=”MR android:layout_wei
7、ght=”1” / Button android:id=+id/button_6 android:layout_width=”0dp android:layout_height=”wrap_content” android:text=”6 android:layout_weight=”1 / Button android:id=+id/button_multi android:layout_width=”0dp” android:layout_height=”wrap_content” android:text=* android:layout_weight=1” / /LinearLayou
8、t LinearLayout android:layout_width=”fill_parent android:layout_height=wrap_content” android:paddingRight=”5dp” android:paddingLeft=5dp android:orientation=”horizontal” Button android:id=+id/button_1 android:layout_width=”0dp” android:layout_height=wrap_content android:text=”1 android:layout_weight=
9、1” / Button android:id=”+id/button_3 android:layout_width=0dp” android:layout_height=wrap_content” android:text=3 android:layout_weight=”1 / /LinearLayout LinearLayout android:layout_width=fill_parent” android:layout_height=”wrap_content android:paddingRight=”5dp” android:paddingLeft=”5dp” android:o
10、rientation=horizontal” Button android:id=”+id/button_0” android:layout_width=0dp” android:layout_height=”wrap_content android:text=”0 android:layout_weight=”1 / TextView android:id=”+id/tv_tmp” android:layout_width=wrap_content” android:layout_height=”wrap_content” android:textColor=”color/pink” and
11、roid:text=”Memory=”/ TextView android:id=+id/tv_mem android:layout_width=”wrap_content” android:layout_height=wrap_content” android:textColor=”color/sliver android:text=”0”/ !- 显示记忆数据 /LinearLayout布局文件中在TextView和EditText中使用的Color要在strings。xml中定义。 Calculator/string string name=”hello_world”Hello worl
12、d!/string string name=”title_activity_my_calculatorMyCalculator/string ffc0cb/color c0c0c03、java代码:各种组件的使用在代码里都有明确说明,在此不再说明.package com.example。calculator;import android.os.Bundle;import android。app。Activity;import android。view.Menu;import android。view。View;import android。view.View.OnClickListener;i
13、mport android。widget。Button;import android.widget。EditText;import android.widget。TextView;public class MyCalculator extends Activitydouble op1=0,op2=0;/记录两次输入的值char operation;/记录运算符EditText input;/输入文本框boolean isInputChar=false;/判断是否输入了运算符TextView memory;/记忆文本Button plus,minus,multi,divide,equal;/运算
14、符Button back,clean,cleanAll;/文本数据处理(回退、本次输 /入清零、所有输入清零) Button mclean,mread,msave;/数据记忆(清除、读取、保存)Button btn=new Button10;/数字Button dot;/点Button sign;/正负数转换 Override public void onCreate(Bundle savedInstanceState) super。onCreate(savedInstanceState); setContentView(R。layout.activity_my_calculator); in
15、put=(EditText)findViewById(R。id。et_input); memory=(TextView)findViewById(R。id.tv_mem); /运算符 plus=(Button)findViewById(R。id.button_plus); minus=(Button)findViewById(R.id.button_minus); multi=(Button)findViewById(R。id。button_multi); divide=(Button)findViewById(R.id.button_div); equal=(Button)findViewB
16、yId(R。id。button_equal); /设置点击监听 plus。setOnClickListener(listener); minus.setOnClickListener(listener); multi。setOnClickListener(listener); divide。setOnClickListener(listener); equal。setOnClickListener(listener); /记忆 back=(Button)findViewById(R。id。button_bk); clean=(Button)findViewById(R.id。button_ce
17、); cleanAll=(Button)findViewById(R。id。button_c); back。setOnClickListener(listener); clean。setOnClickListener(listener); cleanAll。setOnClickListener(listener); /数据记忆 mclean=(Button)findViewById(R。id。button_mc); mread=(Button)findViewById(R。id.button_mr); msave=(Button)findViewById(R.id。button_ms); mc
18、lean.setOnClickListener(listener); mread.setOnClickListener(listener); msave.setOnClickListener(listener); /数字 btn0=(Button)findViewById(R。id。button_0); btn1=(Button)findViewById(R。id。button_1); btn2=(Button)findViewById(R.id。button_2); btn3=(Button)findViewById(R。id。button_3); btn4=(Button)findView
19、ById(R。id.button_4); btn5=(Button)findViewById(R。id。button_5); btn6=(Button)findViewById(R。id.button_6); btn7=(Button)findViewById(R。id。button_7); btn8=(Button)findViewById(R。id。button_8); btn9=(Button)findViewById(R。id。button_9); for(int i=0;i1)input。setText(inputText。substring(0, inputText。length(
20、)1));else if(inputText.length()=1)input.setText(”0”);if(input.getText().toString()。compareTo(-)=0)/去除负号input。setText(0”);break;case R.id。button_ce:/此次输入清零input。setText(”0”);if(isInputChar)op2=0;elseop1=0;break;case R.id.button_c:/全部清零,重新计算input.setText(”0”);op1=0;op2=0;isInputChar=false;break;case R
21、.id。button_mc:/清空记忆数据memory.setText(0”);break;case R。id。button_mr:/取出记忆数据并显示if(memory.getText().toString()。compareTo(”0”)!=0)/记忆数据不为0时才显示input.setText(memory.getText());if(isInputChar)op2=Double.parseDouble(memory。getText().toString();op1=Double.parseDouble(memory。getText().toString();break;case R.i
22、d。button_ms:/取当前文本编辑框内的数据作为记忆数据memory。setText(input。getText());break;case R.id.button_dot:/点boolean nodot=(inputText.indexOf(.”)=-1);/判断数据中是否已存在点if(nodot)input.append(。”);break;case R.id。button_sign:/负数或正数trydouble data=Double。parseDouble(inputText);if(data!=0)data=data*(-1);input.setText(String。val
23、ueOf(data);elseinput.setText(”);catch(NumberFormatException err)input。setText(Number Format Exception!);break;/记录运算符case R。id.button_div:case R。id.button_multi:case R。id。button_minus:case R.id。button_plus:operation=((Button)v).getText()。toString()。charAt(0);isInputChar=true;op1=Double.valueOf(inputT
24、ext);/input.append(String.valueOf(operation);input。setText(0”);break;case R.id。button_equal:op2=Double。valueOf(inputText);dealEqual(operation,op1,op2);break;default:/输入数字String num=(Button)v).getText()。toString();if(inputText。length()=1)if(inputTpareTo(”0”)=0)input.setText(num);elseinput。append(num);elseinput。append(num);break;/处理=按钮public void dealEqual(char ch,double op1,double op2)if(isInputChar)if(ch=+)op1+=op2;else if(ch=)op1-=op2;else if(ch=)op1=op2;else if(ch=/)op1/=op2;input。setText(String.valueOf(op1);