الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية التحويل من الماتلاب الى لغة C++

بدأه الاطياف في 29 فبراير 2008 · 7 رد · 2,697 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

:bye: ++هل بالامكان ان اغير كود مكتوب بالماتلاب الى كود مكتوب بلغة السي :hmm:

#2

noooooooooooooooooooooooooooooooooooooooooo

( _ /)

(='.'=)

(")-(")

#3

السلام عليكم و رحمة الله و بركاته

قمت بعملية التحويل هذه قبل حوالي 3 سنوات و على ما أذكر هناك مترجم mcc

و يستعمل ب الكيفية التالية

>> mcc yourMatlabmethod.m

و لا أنصحك بذلك لأنه تحويل كود صغير في المطلاب يقابله العديد من الملفات سي, دي ال ال ...

garo كتب:
noooooooooooooooooooooooooooooooooooooooooo

:hmm:

#4

فعلا هي دالة MCC اختصار Matlab to C/+C او Matlab Compiler C

هذا الرابط بة شرح للدالة مع بارامترز بتاعتها ولكن العيب كما قال الاخ بن عيد ان حجم كود (مشروع) ال C الناتج سيكون كبيرررررر.

http://www.codeproject.com/KB/cpp/mexFunction.aspx
#5

إذا كانت لغة السي لغة عالية المستوى فلغة الماتلاب لغة فائقة المستوى لأنها تبعد عنك الكثير من التفاصيل وتشعر معها كأنك تتعامل مع الرياضيات بالورقة والقلم فلست بحاجة لتعريف مصفوفة ولست بحاجة لكتابة حلقات متداخلة لضرب مصفوفتين لكن إذا كنت تريد التحويل فعليك إذا أن تعرف كل شئ وتقوم بانشاء دوال لكل عملية تريد القيام بها وطبعا الأمر سيكون أكثر تعقيدا إذا كان الكود الذي تريد تحويله متعلق بمعالجة الإشارات الرقمية

من أقوال الأئمة

الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".

الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".

الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".

الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".

علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".

وكل خير في اتباع من سلف وكل شر في ابتداع من خلف

#6

شكرا للاخوة الزملاء وانا

بالفعل احتاجه في معالجة الاشارة الرقمية ممكن تساعدوني

#7
اقتباس
بالفعل احتاجه في معالجة الاشارة الرقمية ممكن تساعدوني

كنت متوقع ذلك

على العموم هناك مكتبات للتعامل مع المصفوفات ومعالجة الصور وغير ذلك بالسي بلس بلس منها مكتبة انتل

انظر هذا الرابط ربما يفيدك

http://www.intel.com/cd/software/products/.../eng/302910.htm

من أقوال الأئمة

الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".

الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".

الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".

الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".

علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".

وكل خير في اتباع من سلف وكل شر في ابتداع من خلف

#8

اريد تحويل هذا الكود from c++ to matlab code

public void Hide(Stream messageStream, Stream keyStream){

byte[] waveBuffer = new byte;

byte message, bit, waveByte;

int messageBuffer; //receives the next byte of the message or -1

int keyByte; //distance of the next carrier sample

//loop over the message, hide each byte

while( (messageBuffer=messageStream.ReadByte()) >= 0 ){

//read one byte of the message stream

message = (byte)messageBuffer;

//for each bit in [message]

for(int bitIndex=0; bitIndex<8; bitIndex++){

//read a byte from the key

keyByte = GetKeyValue(keyStream);

//skip a couple of samples

for(int n=0; n<keyByte-1; n++){

//copy one sample from the clean stream to the carrier stream

sourceStream.Copy(

waveBuffer, 0,

waveBuffer.Length, destinationStream);

}

//read one sample from the wave stream

sourceStream.Read(waveBuffer, 0, waveBuffer.Length);

waveByte = waveBuffer;

//get the next bit from the current message byte...

bit = (byte)(((message & (byte)(1 << bitIndex)) > 0) ? 1 : 0);

//...place it in the last bit of the sample

if((bit == 1) && ((waveByte % 2) == 0)){

waveByte += 1;

}else if((bit == 0) && ((waveByte % 2) == 1)){

waveByte -= 1;

}

waveBuffer = waveByte;

//write the result to destinationStream

destinationStream.Write(waveBuffer, 0, bytesPerSample);

}

}

//copy the rest of the wave without changes

//...

}

--------------------------------------

Extracting the Message

public void Extract(Stream messageStream, Stream keyStream){

byte[] waveBuffer = new byte;

byte message, bit, waveByte;

int messageLength = 0; //expected length of the message

int keyByte; //distance of the next carrier sample

while( (messageLength==0 || messageStream.Length<messageLength) ){

//clear the message-byte

message = 0;

//for each bit in [message]

for(int bitIndex=0; bitIndex<8; bitIndex++){

//read a byte from the key

keyByte = GetKeyValue(keyStream);

//skip a couple of samples

for(int n=0; n<keyByte; n++){

//read one sample from the wave stream

sourceStream.Read(waveBuffer, 0, waveBuffer.Length);

}

waveByte = waveBuffer;

//get the last bit of the sample...

bit = (byte)(((waveByte % 2) == 0) ? 0 : 1);

//...write it into the message-byte

message += (byte)(bit << bitIndex);

}

//add the re-constructed byte to the message

messageStream.WriteByte(message);

if(messageLength==0 && messageStream.Length==4){

//first 4 bytes contain the message's length

//...

}

}

}

مواضيع مشابهة