Matlab 如何将输入值与矩阵表单数据匹配?

Matlab 如何将输入值与矩阵表单数据匹配?,matlab,matrix,Matlab,Matrix,我得到了安全系数及其对应力的数据,我想让它像提示和询问“安全系数是多少?”一样,然后用户将输入安全系数的值,我想输出在数据表中显示相应的力 谢谢您的帮助。我想您只是想对值进行索引。Matlab索引从1开始,所以您需要使用它作为参考,或者添加一个。正确的做法是将所需的索引放在括号中,也是这样 output_value=A(y+1); 由于要搜索第一列中的值并打印第二列中的相应值,可以执行以下操作: ri = find(A(:,1) == y); z = A(ri,2); 这假设您将始终在A的第

我得到了安全系数及其对应力的数据,我想让它像提示和询问“安全系数是多少?”一样,然后用户将输入安全系数的值,我想输出在数据表中显示相应的力


谢谢您的帮助。

我想您只是想对值进行索引。Matlab索引从1开始,所以您需要使用它作为参考,或者添加一个。正确的做法是将所需的索引放在括号中,也是这样

output_value=A(y+1);

由于要搜索第一列中的值并打印第二列中的相应值,可以执行以下操作:

ri = find(A(:,1) == y);
z = A(ri,2);
这假设您将始终在
A
的第一列中找到
y
的对应值。如果不是这样,则需要修改代码:

ri = find(A(:,1) == y);
if isempty(ri)            % value not found
    % code to print error message 
    % or
    % code interpolate between given values 
else
    z = A(ri,2);
end
您还可以使用
try-catch
块而不是
if-else
语句

插值可以是位技巧,因为您需要对其进行正确建模。插值仍然比外推容易得多。 假设第一列中的值是按递增或递减顺序排列的,可以使用
interp1
进行一阶插值,如下所示:


z=interp1(A(:,1),A(:,2),y)

实际上,我得到了一个包含两个变量(例如x和y)的数据表,我想将它与我的键入数据相匹配,如果我的键入数据列在x中,那么我希望输出值是对应于x的y值。如何使用matlab对其建模..hmm必须小心,因为matlab以“列第一顺序”存储值。这意味着A(2)=3不是2,A(4)=3不是5。大多数其他语言,如C和python,都以“行第一顺序”存储值。@TeeYeesiang你能举一个更好的例子说明你想做什么吗。我得到了一个安全系数及其对应力的数据,我想让它像提示和询问“安全系数是多少?”一样,然后用户将输入安全系数的值,我想输出在数据表中显示相应的力。@TeeYeesiang如果我理解正确,您需要在
a
的第一列中搜索一个值,然后从第二列打印出相应的值。问题的提出方式不清楚这是否是你想要做的。我建议将前面的评论添加到问题中,以使其更加清楚。我将尝试发布另一个答案。请注意,
=
比较仅在
A
的第一列中的值为整数时才有效。如果您有带小数部分的数字,则需要对其进行更正。如果您可以发布一些实际值/文本案例,则会更容易提供帮助。@green您应该投票表决有用的答案和评论。这是表示感谢的更好方式。还有一个问题,如果我想做插值,我是否需要编程每个条件,因为输入y是数据中的一个键。对于例如A=[1,2;3,5;6,7],我需要将其建模为y>1&y3&y@green我已经更新了答案,提供了一种解释正确答案的方法。真的非常感谢。当我获得足够的声誉分数时,我会投票。再次感谢=)