nothing assing to my variable that is in if statement
1 ビュー (過去 30 日間)
表示 古いコメント
hello I wrote a code and it has 5 x and 3 y .
and with different conditions of x, a value should assign to y , but when i run my code in if statement no value assign to y and I wrote y(:,i) = Gt_new(1)
what should i do ?
thank you
my code is
clc; clear all ;close all
warning off
x1 = randi([0,5],1,10);
x = zeros(1,5);
P = 50;
for i = 1:length(x1)/2
x(:,i) = x1(:,2*i) - x1(:,(2*i)-1);
end
xmin = min(x);
xmax = max(x);
Gt = 40
dx = 10;
Gt_new = Gt + [+dx 0 -dx];
y1 = find(x<0)
y2 = find(x == 0)
y3 = find(x>0)
y = zeros(1,5);
for i = 1:length(x)/2
if x < 0
y(:,i) = Gt_new(1)
end
end
0 件のコメント
回答 (1 件)
Mathieu NOE
2022 年 12 月 1 日
hello
you need to index x in the for loop
for i = 1:length(x)/2
if x(i) < 0 % here
y(:,i) = Gt_new(1)
end
end
2 件のコメント
Mathieu NOE
2022 年 12 月 1 日
hello again
your original code gives y = 0 0 0 0 0
the modified code gives another output : y = 0 50 0 0 0
(depends what randi generated in first insyance)
x1 = randi([0,5],1,10);
x = zeros(1,5);
P = 50;
for i = 1:length(x1)/2
x(:,i) = x1(:,2*i) - x1(:,(2*i)-1);
end
xmin = min(x);
xmax = max(x);
Gt = 40
dx = 10;
Gt_new = Gt + [+dx 0 -dx];
y1 = find(x<0)
y2 = find(x == 0)
y3 = find(x>0)
y = zeros(1,5);
for i = 1:length(x)/2
if x(i) < 0
y(:,i) = Gt_new(1)
end
end
y
参考
カテゴリ
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!