2016-08-18 82 views
1

我有一個大小爲100x1的矩陣。我希望將我矩陣的每一行值迭代地輸入到一個函數中。例如,假設L1表示我的矩陣L的第1行,L2第2行,依此類推。說我試圖輸入L的每個值的函數表示爲Y。因此我試圖輸入L1Y來產生Y1,L2Y2等等。迭代地輸入矩陣行值到函數中

我真的可以幫助如何在matlab中實現這個功能嗎?

接受 代碼如下:

load('logregdata.mat') 

%%Data set X is a series of coordinates in two dimensions and t represents class labels. Data set is for a binary classification problem. 

u = rand; 

[w1,w2] = meshgrid(-5:0.1:5,-5:0.1:5); 

w = zeros(2,1); 

w_all = zeros(100,2); 

%Probabilistic term of logistic classifier prob_t = 1./(1+exp(-[w1(:) w2(:)]*X')); 

L = sum(log(prob_t).*repmat(t',numel(w1),1),2); 

L= L + sum (log(1-prob_t).*repmat(1-t',numel(w1),1),2); 

u = rand; 

y = log(L/u); 

感謝提前你的一切幫助。

+0

爲什麼不改變功能,以便它可以支持一個向量? – obchardon

+0

函數簡單地是Y = log(L/u),其中u是均勻分佈的隨機數 – user136754

+0

您的當前代碼將有所幫助。矢量化高度依賴於正在執行的操作。 'L'的每一行都是一樣的嗎? – beaker

回答

0

100x1矩陣只是一個向量!所以,你可以循環通過這樣整個數組:

for i = 1:100 

     do something with Y(L1) 

end 
+0

我嘗試了上面的內容,但它爲y生成了100x1輸出,而不是每個L輸入的y輸出。感謝您的迴應:) – user136754

0

在你的代碼u只是一個標量,這樣你就可以用簡單的元素方面的操作:

y = log(L./u); 

,這將給你一個向量y在相同的大小L這樣y(k) = log(L(k)/u)