Soru sorinputdlg ile veri alma
sba tarafından 2 yıl önce soruldu
clc
clear
close all
n=input(' Kaç Adet Aktiviteniz Mevcut : ');
prompt={ 'Aktivite No :', ...
'Aktivite İsmi :', ...
'Varsa Öncüleri :', ...
'Normal Bitiş Zamanı :', ...
'Hızlandırılmış Bitiş Zamanı :', ...
'Normal Süre Maliyeti :', ...
'1. Hızlandırma Maliyeti :', ...
'2. Hızlandırma Maliyeti :', ...
'3. Hızlandırma Maliyeti :',};
title='Aktivite Bilgileri';
for i=1:n
answer=inputdlg(prompt,title);
anst=(answer'),n;
end
tablo=[prompt;anst];
disp('Teşekkürler');

Merhaba yukarıdaki gibi bir inputdlg ile veri toplamaya çalışıyorum. 1 adet aktivite giridiğimde sorun olmuyor tablom istediğim gibi oluşuyor fakat 1 den fazla aktivite girdiğimde son girdiğim değerler tabloda kalıyor tablom bir türlü istediğim şekle gelmiyor. Yardımcı olursanız sevinirim.

5 Cevap
En iyi cevap
sayginer Yönetici tarafından 1 yıl önce cevaplandı

Merhaba,
Aşağıdaki düzenlememi inceleyebilirsiniz. Final tablonun sütün,satır dizilimini istediğinize göre düzenlemeniz gerekebilir.

clc
clear
close all
n=input(' Kaç Adet Aktiviteniz Mevcut : ');
prompt={ 'Aktivite No :', ...
    'Aktivite İsmi :', ...
    'Varsa Öncüleri :', ...
    'Normal Bitiş Zamanı :', ...
    'Hızlandırılmış Bitiş Zamanı :', ...
    'Normal Süre Maliyeti :', ...
    '1. Hızlandırma Maliyeti :', ...
    '2. Hızlandırma Maliyeti :', ...
    '3. Hızlandırma Maliyeti :',};
title='Aktivite Bilgileri';
for i=1:n
    answer=inputdlg(prompt,title);
    anst=(answer'),n;
    tablo(i,:)=[prompt anst];
end
disp('Teşekkürler');
sba tarafından 1 yıl önce cevaplandı

Hocam merhaba. Çok teşekkür ederim. İstediğim gibi tablomu oluşturabildim. Fakat şimdide şöyle bir sorun oldu. Ben bu tabloda bir takım hesaplamalar yapacağım. Bazı değerleri çıkartma bölme toplama gibi. Bazı sütunlarda İsim yazarken bazılarında sayı olmalı. Hatta bir sütumda "Varsa Öncüleri:" sütunu bağlı olduğu aktiviteleri çekmem gerekecek. Sanırım o sutün için matris kullanmam gerek. Yani sütünün biri karakter biri sayı biri matris gibi olmalı. Acaba bunu nasıl yapabilirim. Resimde anlatmaya çalıştım.
Şimdiden teşekkürler.

 

clc
clear
close all

row = input('Kaç Adet Aktivite Mevcut? :');
col = 9;

%Tablo İsimleri
colNames = { 'Aktivie No :', ...
'Aktivite İsmi :', ...
'Varsa Öncüleri :', ...
'Normal Bitiş Zamanı :', ...
'Hızlandırılmış Bitiş Zamanı :', ...
'Normal Süre Maliyeti :', ...
'1. Hızlandırma Maliyeti :', ...
'2. Hızlandırma Maliyeti :', ...
'3. Hızlandırma Maliyeti :'};

prompt={ 'Aktivite İsmi :', ...
'Varsa Öncüleri :', ...
'Normal Bitiş Zamanı :', ...
'Hızlandırılmış Bitiş Zamanı :', ...
'Normal Süre Maliyeti :', ...
'1. Hızlandırma Maliyeti :', ...
'2. Hızlandırma Maliyeti :', ...
'3. Hızlandırma Maliyeti :',};
title='Aktivite Bilgileri';

for i=1:row
answer=inputdlg(prompt,title);
anst=(answer');row;
t(i,:)=[i anst];
end
T=array2table(t,"VariableNames",colNames)
disp('Teşekkürler');

Son hali bu şekilde yazdığım kodun.

sayginer Yönetici tarafından 1 yıl önce cevaplandı

Merhaba,
Tablonuzun istediginiz kısımlarını aşağıdaki gibi yeni matrislere dönüştürebilirsiniz.

x = T{:,2} % burada tablonun 2. sutununu x değişkenine atamış olduk

Eksik kısım varsa yazabilirsiniz

sba tarafından 1 yıl önce cevaplandı

Merhaba hocam,
Değişken atama olarak değil de daha çok şunu yapabilir miyim acaba: 
2.Sutun aktivite ismi kısmı string olsun
3.Sutun Varsa öncüleri matris olsun.(çünkü burada aktiviteleri burada yazan aktivite no ya göre bağlamam gerek. Matris olursa sanırım matris üzerinden işlemler yaptırarak sorunu çözerim diye düşünüyorum)
4.Sutun ve sonra ise double veya integer olması lazım ki işlemleri yapabileyim.
Yani ilk aşamada bunu bu şekilde de ayarlayabiliriz veya oluşan tablo sutunlarını sonradan bir kod ile de dönüştürebiliriz fark etmez. Ama yapabilme imkanı olursa çok sevirinirim.
Şimdiden teşekkürler.

sba tarafından 1 yıl önce cevaplandı

clc
clear
close all
row = input('Kaç Adet Aktivite Mevcut? :');
col = 7;
%Tablo İsimleri
colNames = { 'Aktivie No :', …
'Aktivite İsmi :', …
'Varsa Öncüleri :', …
'Normal Bitiş Zamanı :', …
'Hızlandırılmış Bitiş Zamanı :', …
'Normal Süre Maliyeti :', …
'Hızlandırma Maliyetileri :'};
prompt={ 'Aktivite İsmi :', …
'Varsa Öncüleri :', …
'Normal Bitiş Zamanı :', …
'Hızlandırılmış Bitiş Zamanı :', …
'Normal Süre Maliyeti :', …
'Hızlandırma Maliyetleri :',};
title='Aktivite Bilgileri';
for i=1:row
answer=inputdlg(prompt,title);
anst=(answer');row;
t(i,:)=[i anst];
end
T=array2table(t,"VariableNames",colNames)
T.("Varsa Öncüleri :") = cell2mat(T.("Varsa Öncüleri :"));
T.(3) = str2num(T.(3));
T.(4) = str2double(T.(4));
T.(5) = str2double(T.(5));
T.(6) = str2double(T.(6));
T.("Hızlandırma Maliyetileri :") = cell2mat(T.("Hızlandırma Maliyetileri :"));
T.(7) = str2num(T.(7));
disp('Teşekkürler');

 
Merhaba,
En son kodu bu hale getirdim. Fakat sadece Varsa Öncüleri ve Hızlandırma Maliyetleri kısmında sıkıntı yaşamaktayım.
Buraya girdileri boşuk yazarak sağlıyorum. Mesela 2 5 6 10 gibi. Eğer aynı değerleri girersem sıkıntı olmadan hücre içine matris olarak girdi giriyor. Ama eğer farklı boyut ve değerler girersem hata veriyor. Nasıl çözmem gerek acaba.
Şimdiden teşekkürler.