2015年6月22日 星期一

matlab 隨機打亂各行或各列

A=[ 2 2 2;3 3 3;4 4 4];
ans:
2 1 2
3 3 1
1 4 4

1.隨機打亂各行
rr=randperm( size(A,1) );   %隨機產生同行數的隨機序列
Brow=A(rr, :);  %照著序列重排
ans:
3 3 1
2 1 2
1 4 4

2.隨機打亂各列
rc=randperm( size(A,2) );   %隨機產生同列數的隨機序列
Bcol=A(:, rc);    %照著序列重排
ans:
2 2 1
3 1 3
1 4 4



2015年6月2日 星期二

android 檢查網路 和檢查定位是否有開啟

會使用到的權限
//--定位的
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//--網路的
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.provider.Settings;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {



public boolean getService = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testLocationProvider();
testnetwork();
}


@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
testLocationProvider();
testnetwork();
}
}



private void testnetwork() {
try {

ConnectivityManager mConnectivityManager = (ConnectivityManager)( this.getSystemService(Context.CONNECTIVITY_SERVICE));

NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();

//如果未連線的話,mNetworkInfo會等於null
if(mNetworkInfo != null)
{
getService = true;

}
else {


AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
    ad.setTitle("開網路啦 ");
    ad.setMessage("內容" );
    ad.setNeutralButton("開網路喔!!",
               new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {
                    //不做任何事情 直接關閉對話方塊  
                  
                  startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); // 開啟設定頁面
                  
                  }
                });
     ad.show();
//網路是否已連線(true or false)
mNetworkInfo.isConnected();
//網路連線方式名稱(WIFI or mobile)
// mNetworkInfo.getTypeName();
// //網路連線狀態
// mNetworkInfo.getState();
// //網路是否可使用
// mNetworkInfo.isAvailable();
// //網路是否已連接or連線中
// mNetworkInfo.isConnectedOrConnecting();
// //網路是否故障有問題
// mNetworkInfo.isFailover();
// //網路是否在漫遊模式
// mNetworkInfo.isRoaming();
}

}catch(Exception e){

e.printStackTrace();
}

}


private void testLocationProvider() {
// TODO Auto-generated method stub
try {
LocationManager status = (LocationManager) (this.getSystemService(Context.LOCATION_SERVICE));
if (status.isProviderEnabled(LocationManager.GPS_PROVIDER)|| status.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
// 如果GPS或網路定位開啟,呼叫locationServiceInitial()更新位置
getService = true; // 確認開啟定位服務

} else {
Toast.makeText(this, "請開啟定位服務", Toast.LENGTH_LONG).show();
AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
    ad.setTitle("您好,請把'定位'打開喔!! ");
    ad.setMessage("內容喔" );
    ad.setNeutralButton("開啟定位服務!!",
               new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {
                    //不做任何事情 直接關閉對話方塊
                  startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); // 開啟設定頁面
                  }
                });
     ad.show();

}
} catch (Exception e) {
e.printStackTrace();
}
}
}


我有參考這些網站
http://dean-android.blogspot.tw/2013/08/android-connectivity-network-active.html
http://shovachu-coding.blogspot.tw/2013/09/androidby-connectivitymanager.html

ps.這個網誌我是用來方便筆記用的,裡面的code 應該都會在其他網站看到,如果原作者有注意到什麼....要我拿掉的話請mail跟我說一下謝謝> <