Implementing an equation in Matlab
이전 댓글 표시
Hi,
I am trying to implement an equation in a form like, if a*b<1 then, x=-b/N otherwise x=0, where N= size of a. The equation is simple, but the data I recieve for a and b are differnt formet. a is a 4-d numeric array and b is a categorical array. Would you please suggest me how could I implement this equation?
Sample Input
a= val(:,:,1,1)=0.55
val(:,:,2,1)=0.45
val(:,:,1,2)=0.67
val(:,:,2,2)=0.33
b=
0
1
I have tried to solve it my way like following:
[m,n,o,p]=size(a,4);
x=zeros(m,n,o,p);
c=double(string(categorical(b)));
for i=1:p
for j=1:o
mul=c(i)*a(:,:,j,i);
if(mul<1)
x(:,:,j,i)=-c(i)/p;
else
x(:,:,j,i)=0;
end
end
end
Is it the right way to solve the equation?
댓글 수: 5
darova
2019년 6월 28일
mul=c(i)*a(:,:,j,i); % it is a 2D matrix
if(mul<1) % which of elements you want to compare with 1?
Saugata Bose
2019년 6월 28일
darova
2019년 6월 28일
WHat does it mean?
c(1)*a(:,:,1,1)=0 * 0.55
Saugata Bose
2019년 6월 28일
darova
2019년 6월 28일
If mul is a variable (1x1) your above code is OK.
mul=c(i)*a(:,:,j,i);
Also you don't have to use else statement because x matrix is already zeros
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Get Started with Statistics and Machine Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!