MATLAB,如何在一行中评估多个指标?

MATLAB,如何在一行中评估多个指标?,matlab,Matlab,我不知道怎样才能比给你举个例子更好地解释这一点 假设我有以下数组: a = magic(6) 然后我像这样“切”了一块: a(:,1) 它将打印: 35 3 31 8 30 4 现在我想要第一个数字,所以我想写: a(:,1)(1) 而不是: b = a(:,1) b(1) 此外,是否有这样的方法(赋值和比较,即设置b,然后根据它进行评估): 好的,这里有一个函数更新,在这个函数中使用(1,1)并不简单 还有,如果我只想要魔术(3)中的前4个数字呢? 最好是写信 sprintf

我不知道怎样才能比给你举个例子更好地解释这一点

假设我有以下数组:

a = magic(6)
然后我像这样“切”了一块:

a(:,1)
它将打印:

35
 3
31
 8
30
 4
现在我想要第一个数字,所以我想写:

a(:,1)(1)
而不是:

b = a(:,1)
b(1)
此外,是否有这样的方法(赋值和比较,即设置b,然后根据它进行评估):


好的,这里有一个函数更新,在这个函数中使用(1,1)并不简单

还有,如果我只想要魔术(3)中的前4个数字呢? 最好是写信

sprintf('%i, ', magic(3)(1:4))(1:end-2)

MHO代替了数十行。

您不能将索引连接为
foo(1)(2)(3)
。但是,您可以一次索引多个维度。所以在这个例子中,
a(1,1)
会给你你想要的。

谢谢,在这个简化的例子中,a(1,1)给了我想要的,但是还有其他的例子是不可能的。所以绝对没有办法连接(或模仿)索引?最近有很多类似的问题。描述几个选项。t看来你答对了:D,谢谢,杜德克,对不起,再次感谢
come_on = sprintf('%i, ', magic(3));
come_on(1:end-2)
8, 3, 4, 1, 5, 9, 6, 7, 2
sprintf('%i, ', magic(3)(1:4))(1:end-2)