تالار گفتمان مانشت
خطای نتیجه در متلب - نسخه‌ی قابل چاپ

خطای نتیجه در متلب - The BesT - 17 تیر ۱۳۹۷ ۰۹:۲۷ ب.ظ

سلام دوستان
لطفاااا کسانیکه نرم افزار متلب را دارید ،این تیکه کد را اجرا بفرمایید. چرا برای همه متغیرها عدد ۴۸ را در خروجی چاپ میکنه؟ Confused
میخوام اعداد موجود در آرایه را دونه دونه اعداد را به باینری هشت بیتی تبدیل کنه و هر بیت را در یک page بریزه. بیت اول در page1 ،بیت دوم در page2 و .....
آخر دست که میرم خونه های pageها را چک میکنم همش عدد ۴۸ را داخلشون چاپ کرده. چرا؟؟!

ممنون

کد:
a=[1 2 3 4;5 6 7 8;9 10 11 12];
page1=zeros(3,4);
page2=zeros(3,4);
page3=zeros(3,4);
page4=zeros(3,4);
page5=zeros(3,4);
page6=zeros(3,4);
page7=zeros(3,4);
page8=zeros(3,4);
data2=zeros(3,4);
for i=1:3
    for j=1:4
        data2(i,j)=a(i,j);
    end
end
for i=1:3
    for j=1:4
        m=data2(i,j);
        temp=dec2bin(m,8);
        page1(i,j)=temp(1);
        page2(i,j)=temp(2);
        page3(i,j)=temp(3);
        page4(i,j)=temp(4);
        page5(i,j)=temp(5);
        page6(i,j)=temp(6);
        page7(i,j)=temp(7);
        page8(i,j)=temp(8);
    end
end


RE: خطای نتیجه در متلب - BBumir - 17 تیر ۱۳۹۷ ۱۰:۰۵ ب.ظ

(۱۷ تیر ۱۳۹۷ ۰۹:۲۷ ب.ظ)The BesT نوشته شده توسط:  سلام دوستان
لطفاااا کسانیکه نرم افزار متلب را دارید ،این تیکه کد را اجرا بفرمایید. چرا برای همه متغیرها عدد ۴۸ را در خروجی چاپ میکنه؟ Confused
میخوام اعداد موجود در آرایه را دونه دونه اعداد را به باینری هشت بیتی تبدیل کنه و هر بیت را در یک page بریزه. بیت اول در page1 ،بیت دوم در page2 و .....
آخر دست که میرم خونه های pageها را چک میکنم همش عدد ۴۸ را داخلشون چاپ کرده. چرا؟؟!

ممنون

کد:
a=[1 2 3 4;5 6 7 8;9 10 11 12];
page1=zeros(3,4);
page2=zeros(3,4);
page3=zeros(3,4);
page4=zeros(3,4);
page5=zeros(3,4);
page6=zeros(3,4);
page7=zeros(3,4);
page8=zeros(3,4);
data2=zeros(3,4);
for i=1:3
    for j=1:4
        data2(i,j)=a(i,j);
    end
end
for i=1:3
    for j=1:4
        m=data2(i,j);
        temp=dec2bin(m,8);
        page1(i,j)=temp(1);
        page2(i,j)=temp(2);
        page3(i,j)=temp(3);
        page4(i,j)=temp(4);
        page5(i,j)=temp(5);
        page6(i,j)=temp(6);
        page7(i,j)=temp(7);
        page8(i,j)=temp(8);
    end
end

سلام به خاطر اینه که temp رشته کرکتریه.
کد اصلاح شده:

کد:
a=[1 2 3 4;5 6 7 8;9 10 11 12];
page1=zeros(3,4);
page2=zeros(3,4);
page3=zeros(3,4);
page4=zeros(3,4);
page5=zeros(3,4);
page6=zeros(3,4);
page7=zeros(3,4);
page8=zeros(3,4);
data2=zeros(3,4);
for i=1:3
    for j=1:4
        data2(i,j)=a(i,j);
    end
end
for i=1:3
    for j=1:4
        m=data2(i,j);
        %%temp is string or array of char
        temp=dec2bin(m,8);
        page1(i,j)=str2num(temp(8));
        page2(i,j)=str2num(temp(7));
        page3(i,j)=str2num(temp(6));
        page4(i,j)=str2num(temp(5));
        page5(i,j)=str2num(temp(4));
        page6(i,j)=str2num(temp(3));
        page7(i,j)=str2num(temp(2));
        page8(i,j)=str2num(temp(1));
    end
end


خطای نتیجه در متلب - The BesT - 17 تیر ۱۳۹۷ ۱۰:۳۳ ب.ظ

ممنووونHeart
چرا فقط عدد ۴۸ را برای همشون نشون میده؟

RE: خطای نتیجه در متلب - BBumir - 17 تیر ۱۳۹۷ ۱۱:۱۲ ب.ظ

(۱۷ تیر ۱۳۹۷ ۱۰:۳۳ ب.ظ)The BesT نوشته شده توسط:  ممنووونHeart
چرا فقط عدد ۴۸ را برای همشون نشون میده؟

خواهش می‌کنم چون عدد اسکی حرف ۰ هست.

خطای نتیجه در متلب - The BesT - 19 تیر ۱۳۹۷ ۰۵:۱۰ ب.ظ

سلام

اگر مقدارهای زیر داشته باشیم:
a1=0 , a2=0 , a3=0 , a4=0 , a5=0 , a6=1 , a7=0 , a8=1

چجوری میتونم در متلب بگم این ارقام را کنار هم بگذار و عدد باینری که تولید میشه را دسیمال کند؟
یعنی این را ایجاد کند : ۰۰۰۰۰۱۰۱
و بعد چاپ کند ۵

ممنونHeart

خطای نتیجه در متلب - The BesT - 19 تیر ۱۳۹۷ ۰۸:۱۷ ب.ظ

اینجوری میشه Shy

کد:
bin2dec(strcat(num2str(a1),num2str(a2),num2str(a3),num2str(a4),num2str(a5),num2s​tr(a6),num2str(a7),num2str(a8)))


خطای نتیجه در متلب - Behnam‌ - ۲۰ تیر ۱۳۹۷ ۱۰:۳۹ ق.ظ

من، بعد از دیدن این مدل کد زدن: [تصویر:  458116_109.gif]