i want to take different values in each loop ?
Show older comments
close all;
clear all;
clc;
v=[1 2 3;4 5 6;7 8 9]
[n m]=size(v);
w=double(abs(rand(n,5)));
h=double(abs(rand(5,m)));
% L2=norm(w,2);
l2=zeros(3,1)
%l2 norm column wise
for i=1:5
l2(i)=norm(w(:,i),2)
end
%l1 norm column wise
l1=zeros(5,1);
for k=1:5
l1(k)=(l2(k)*(sqrt(3)-(sqrt(3)-1)*0.9))
end
%%i want to make a loop such that it takes value of l1 for each w
%%that is I want to avoid rewriting the below code for taking each value of l1.
for i1=1:3
w(i1)=w(i1)+(l1(1)-sum(w(:,i1)))/3
end
for i2=1:3
w(i2)=w(i2)+(l1(2)-sum(w(:,i2)))/3
end
for i3=1:3
w(i3)=w(i3)+(l1(3)-sum(w(:,i3)))/3
end
for i4=1:3
w(i4)=w(i4)+(l1(4)-sum(w(:,i4)))/3
end
for i5=1:3
w(i5)=w(i5)+(l1(5)-sum(w(:,i5)))/3
end
1 Comment
Stephen23
on 10 Aug 2017
@ kitty varghese: why are you using loops anyway? These are simple arithmetic operations, which could easily be vectorized:
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!