【发布时间】:2018-04-26 08:04:11
【问题描述】:
我正在尝试创建一个小脚本,让用户能够从头开始创建一个新矩阵 (10x8),稍后将用于双线性插值。
目前我这样做的方法是使用prompt 函数,在弹出块中包含 10 行。然后,用户将为他们想要的每一行输入 8 个值。
这将输出一个 10x1 的单元格,其中包含值。那么这个 10x1 的单元格需要转换成一个 10x8 的矩阵
下面是我当前代码的简化示例 (5x3) 矩阵想法。
用户进入;
输入数据后,我尝试让 Matlab 将这些数字转换为(在本例中)一个 5x3 矩阵,例如
1 2 3
4 5 6
7 8 9
1 5 9
7 5 3
使用此代码
prompt = {'Enter the first row values','Enter the second row values','Enter the third row values'...
'Enter the forth row values', 'Enter the fifth row values'}%, 'Entre the sixth row values'...
%'Enter the seventh row values', 'Enter the eighth row values', 'Enter the nineth row values' ...
%'Enter the tenth row values'};
title = ' bi-linear interpolation grid ';
dims = [1 50];
answer = inputdlg(prompt,title,dims);
bi_linear_interpolation_grid = cell2mat(answer);
但是,这会产生 5x5?带有值的字符。下图
我也试过用str2double,之前网上用过的另一种方法,根本没用。
我知道这可能不是输入数据的最有效方法(我对 Matlab 还很陌生),但我发现这种方法是一种快速而干净的方法。如果您知道更简单的方法,请指出正确的方向
非常感谢您提供的任何帮助。
【问题讨论】:
标签: matlab