问题描述
我正在pyqgis中创建一个函数,该函数生成特定层中所有多边形的邻接矩阵。但是,此矩阵的索引存在问题:对于大小为n = 4(其中n是图层中要素数量)的矩阵,如果我使用range(n)或range(1,n + 1 ),出现错误。但是如果我改用range(1,n + 2)(或者通常是range(y,n + y + 1)),那就可以了。问题在于,我最终得到的矩阵为5x5,其中包含空行和空列。
这是代码:
baz
这就是我得到的:
private void inisialisasi() {
providers = Arrays.asList(
new AuthUI.IdpConfig.PhoneBuilder().build(),new AuthUI.IdpConfig.GoogleBuilder().build()
);
Intent intentFBase =AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(Arrays.asList(
//new AuthUI.IdpConfig.GoogleBuilder().build(),new AuthUI.IdpConfig.PhoneBuilder()
.build()
))
.setlogo(R.drawable.warung_acil)
.setTheme(R.style.firebaselogintheme)
.setIsSmartLockEnabled(true)
.build();
startActivityForResult(intentFBase,RC_SIGN_IN);
}
protected void onActivityResult(int requestCode,int resultCode,@Nullable Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == RC_SIGN_IN)
{
IdpResponse response = IdpResponse.fromresultIntent(data);
// Successfully signed in
if (resultCode == RESULT_OK) {
//simpan token ke realtimedatabase
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if(task.isSuccessful())
{
final String token = task.getResult().getToken();
//Toast.makeText(Login_With_Firebase.this,"Token: "+token,Toast.LENGTH_SHORT).show();
Log.d("TAG","token : "+token);
Timer t = new Timer(false);
t.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
SimpanTokenKeFirestore(token);
}
});
}
},500);
}
else
{
Toast.makeText(Login_With_Firebase.this,"Gagal Login",Toast.LENGTH_SHORT).show();
}
}
});
} else {
// Sign in Failed
if (response == null) {
// User pressed back button
Toast.makeText(this,"Sign In Cancelled",Toast.LENGTH_SHORT).show();
return;
}
if (response.getError().getErrorCode() == ErrorCodes.NO_NETWORK) {
Toast.makeText(this,"No Network",Toast.LENGTH_SHORT).show();
return;
}
Toast.makeText(this,"Sign In Error",Toast.LENGTH_SHORT).show();
Log.e("TAG","Sign-in error: ",response.getError());
}
}
}
private void SimpanTokenKeFirestore(final String tokennya) {
firebaseAuth = FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser().getPhoneNumber() != null)
{
username = firebaseAuth.getCurrentUser().getPhoneNumber();
if(username == null || username == "")
{
Toast.makeText(this,"Error Login",Toast.LENGTH_LONG).show();
return;
}
SharedPrefManager.getInstance(Login_With_Firebase.this).setUsernameHape(username);
CollectionReference FolderUser = dbfirestore.collection("Users");
Query queryinsert = FolderUser.whereEqualTo("username",username).limit(1);
queryinsert.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if(queryDocumentSnapshots.isEmpty())
{
//add
Toast.makeText(Login_With_Firebase.this,"Selamat Datang "+username,Toast.LENGTH_SHORT).show();
ket_review.add("0@@0@@");
Users userrrnya = new Users(username,tokennya,"Pembeli",0.0,ket_review);
CollectionReference FolderuseRSS = dbfirestore.collection("Users");
FolderuseRSS.document(username).set(userrrnya).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
//masukkan saldo awal
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm::ss",Locale.getDefault());
String currentDateandTime = sdf.format(new Date());
ket_topup_each.add(currentDateandTime+"@@Saldo Awal@@0");
ket_transaksi_each.add(currentDateandTime+"@@Member Baru@@0");
ClassSaldoMember classSaldoMember = new ClassSaldoMember(username,1,ket_topup_each,ket_transaksi_each);
CollectionReference FolderTopUp = dbfirestore.collection("TopUpHistory");
FolderTopUp.add(classSaldoMember).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
if(SharedPrefManager.getInstance(getApplicationContext()).isRequestLoginFromCheckOutPageSet())
{
Intent returnIntent = new Intent();
returnIntent.putExtra("hasilReturn","berhasil");
setResult(RESULT_OK,returnIntent);
finish();
}
else
{
// Intent returnIntent = new Intent();
//// returnIntent.putExtra("hasilReturn","login_berhasil");
//// setResult(RESULT_OK,returnIntent);
//// finish();
Intent intent = new Intent(Login_With_Firebase.this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Login_With_Firebase.this,"tidak bisa menyimpan data User",Toast.LENGTH_SHORT).show();
}
});
}
else
{
for(QueryDocumentSnapshot snapshot: queryDocumentSnapshots)
{
if(snapshot.exists()){
idDocument = snapshot.getId();
}
}
//update
Map<String,Object> mapp = new HashMap<>();
mapp.put("token",tokennya);
CollectionReference FolderUseRSSs = dbfirestore.collection("Users");
FolderUseRSSs.document(username).update(mapp).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(Login_With_Firebase.this,"Selamat Datang",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Login_With_Firebase.this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
});
}
}
});
}
else
{
Toast.makeText(this,"Current get phone Number User is Null",Toast.LENGTH_LONG).show();
}
}
如您所见,我得到了这个5x5矩阵,因为有一行和一列表示“第零个特征”。如何获得具有正确数量的特征的矩阵(在这种情况下为4,但是我希望每n个矩阵都正确)?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)