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
参考
カテゴリ
Help Center および File Exchange で Entering Commands についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!