How can I fix this error?

4 个评论

Your question is not clear. What is i?
%Supposed this
function y=Question5(x,i)
.....
end
Let, x=randi([-10 10],5,3)
y=Question5(x,3)
I want to extract the first row from others

请先登录,再进行评论。

 采纳的回答

Khalid Mahmood
Khalid Mahmood 2021-4-7
编辑:Khalid Mahmood 2021-4-7

1 个投票

function y=Question5(x)
y=[];
rows=size(x,1);
y(1,:)=x(1,:);
for i=2:rows
y(i,:)=x(i,:)-x(1,:);
end
end

3 个评论

Output is not correct. Output only shows the last row
in for loop y(i) ensures all rows. Like y(i,:)=x(i,:)-x(1,:); This is working now
Thank you so much

请先登录,再进行评论。

更多回答(2 个)

Steven Lord
Steven Lord 2021-4-7

0 个投票

Where in your code do you define a variable named i? If the answer is some form of "nowhere" or "I don't" then MATLAB will call the built-in function to determine the value that should be used. That built-in function returns neither a positive integer value nor a logical value.
function y=Question5(x,i)
y=[];
if i==1
y=x(1,:);
else
y=x(i,:)-x(1,:);
end
end

1 个评论

save above code as Question5.m file. Then
>>x=randi([-10 10],5,3); % define x, or whatever x you want
>>y=Question5(x,1)
>>y=Question5(x,2)
>>y=Question5(x,3)
But I think you may need following code for advanced logic.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by