2016-08-18 59 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)