找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
請尊重及感激所有版主付出和奉獻尊貴會員無限觀看附件圖片搞笑、娛樂、精彩的影片讓你看
三上悠亞mg上原亞衣ge人妖3d中文
連點星巴克潮吹 mg碧藍幻想穿越獸世mifd 241あい☆き

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]魔王陛下,RETRY

[繁]香格里拉・開拓異

[繁]精靈幻想記 第二

[繁]在地下城尋求邂逅

[繁]膽大黨07-

湖口中山路 開門不看
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
樓主: 雷亂圈
打印上一主題下一主題

[問題]MATLAB與C語言[複製鏈接]

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3230
積分
24427 點
潛水值
78810 米
16
發表於 2015-12-3 02:56 AM|只看該作者
雷亂圈 發表於 2015-12-2 06:36 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

傳進去的是動態配置而來的
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define print printf
  5. #define N 3
  6. #define M 8

  7. void mutation(double **parent , double pm , int n , int m , double ***child)
  8. {
  9.     int i , j;
  10.     double rd;
  11.    
  12.     srand(time(NULL));
  13.     *child = (double**) malloc(sizeof(double**) * n);
  14.    
  15.     for(i = 0 ; i < n ; ++i)
  16.         (*child)[i] = (double*) malloc(sizeof(double) * m);
  17.    
  18.     rd = (double) rand() / RAND_MAX;
  19.    
  20.    
  21.     if(rd < pm)
  22.     {
  23.         int *mpoint = (int*) malloc(sizeof(int) * 100);
  24.         
  25.         for(i = 0 ; i < 100 ; ++i)
  26.             mpoint[i] = (double) rand() / RAND_MAX * (m - 1) + 0.5;

  27.         for(i = 0 ; i < n ; ++i)
  28.             memcpy((*child)[i] , parent[i] , sizeof(double) * m);
  29.             
  30.         for(i = 0 ; i < 100 ; ++i)
  31.             for(j = 0 ; j < n ; ++j)
  32.                 (*child)[j][mpoint[i]] = abs(parent[j][mpoint[i]] - 1);

  33.         free(mpoint);
  34.     }
  35.     else
  36.     {
  37.         for(i = 0 ; i < n ; ++i)
  38.             memcpy((*child)[i] , parent[i] , sizeof(double) * m);
  39.     }
  40. }
  41. int main()
  42. {
  43.     double **parent;
  44.     double **child = NULL;
  45.     double val = 0;
  46.     int i , j;
  47.    
  48.     parent = (double**) malloc(sizeof(double*) * N);
  49.    
  50.     for(i = 0 ; i < N ; ++i)
  51.         parent[i] = (double*) malloc(sizeof(double) * M);

  52.     for(i = 0 ; i < N ; ++i)
  53.         for(j = 0 ; j < M ; ++j)
  54.             parent[i][j] = val++;

  55.     mutation(parent , 0.3 , N , M , &child);
  56.    
  57.     for(i = 0 ; i < N ; ++i)
  58.     {
  59.         for(j = 0 ; j < M ; ++j)
  60.         {
  61.             print("%f " , child[i][j]);
  62.         }
  63.         putchar('\n');
  64.     }
  65.    
  66.     for(i = 0 ; i < N ; ++i)
  67.         free(parent[i]);
  68.         
  69.     free(parent);

  70.     for(i = 0 ; i < N ; ++i)
  71.         free(child[i]);
  72.         
  73.     free(child);
  74.         
  75.     return 0;
  76. }
複製代碼


...
瀏覽完整內容,請先 註冊登入會員
Melty Snow [雪靈]
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
33
積分
3434 點
潛水值
52310 米
17
發表於 2015-12-3 11:17 AM|只看該作者
snowflying 發表於 2015-12-3 02:56 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

版大我將您所打的程式進行運行形成執行檔
但說這一段有錯
srand(time(NULL));

點評

snowflying 多加一句 #include <time.h> 吧  發表於 2015-12-3 11:21 AM

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
33
積分
3434 點
潛水值
52310 米
18
發表於 2015-12-3 07:19 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
雷亂圈 發表於 2015-12-3 11:17 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

版大我將您所打的程式進行運行形成執行檔
但說這一段有錯
srand(time(NULL));

版大想多問一下當作學習用
假如直接是個二維陣列的話作法是如何...
瀏覽完整內容,請先 註冊登入會員

點評

snowflying 直接的二維陣列就是用指標下去玩了,因為 n 、m 都是變數,所以不太能用 []  發表於 2015-12-3 08:01 PM
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
33
積分
3434 點
潛水值
52310 米
19
發表於 2015-12-3 10:57 PM|只看該作者
function [child1,child2] = crossover(parent1,parent2,pc)
stringlength=length(parent1(1,: ));
    if(rand < pc)
        cpoint =  round(rand*(stringlength-2))+1;
        child1=[parent1(:,1:cpoint) parent2(:,cpoint+1:stringlength)];
        child2=[parent2(:,1:cpoint) parent1(:,cpoint+1:stringlength)];
    else
    child1=parent1;
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3230
積分
24427 點
潛水值
78810 米
20
發表於 2015-12-4 12:52 AM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
雷亂圈 發表於 2015-12-3 10:57 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

function [child1,child2] = crossover(parent1,parent2,pc)
stringlength=length(parent1(1,: ));
    if( ...

如果  parent1 和 parent2 維度一樣
...
瀏覽完整內容,請先 註冊登入會員





Melty Snow [雪靈]
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
33
積分
3434 點
潛水值
52310 米
21
發表於 2015-12-4 03:11 PM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
snowflying 發表於 2015-12-4 12:52 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

如果  parent1 和 parent2 維度一樣
那麼共用同樣的 n、m 就行了

版大請問一下這兩段該如何編寫
cpoint =  round(rand*(stringlength-2))+1;
...
瀏覽完整內容,請先 註冊登入會員

點評

snowflying 我覺得還是先把 C 學一學, 自己改比較實在  發表於 2015-12-4 06:12 PM
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
33
積分
3434 點
潛水值
52310 米
22
發表於 2015-12-16 11:09 PM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
版大
這兩段我翻書找資料幾天了但還是無法編寫出來請版大在幫一次忙吧
cpoint =  round(rand*(stringlength-2))+1;
child1=[parent1(:,1:cpoint) parent2(:,cpoint+1:stringlength)];

點評

snowflying 差不多把部分程式碼複製一份就行了  發表於 2015-12-17 09:11 PM
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
33
積分
3434 點
潛水值
52310 米
23
發表於 2015-12-17 11:05 PM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部