我有这个载体:
人口= [3,5,5,2,0,5,10,50,0,1];
我需要用1到4之间的随机值填充此向量,只有向量中有0值。
我怎么做?
编辑:有一种方法可以使用randperm函数吗?
答案 0 :(得分:0)
首先,找到零元素,然后生成随机值,然后替换这些元素:
Population = [3, 5, 0, 2, 0, 5, 10, 50, 0, 1];
idx = find(Population==0);
Population(idx) = 3 * rand(size(idx)) + 1;
如果你需要整数(没有指定),只需在最后一个语句中舍入生成的随机数,如round(3*rand(size(idx))+1)
;或使用randi
(根据@OmG的回答建议):randi([1,4], size(idx))
。
答案 1 :(得分:0)
您可以使用以下代码:
function downloadFile() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
alert('file system open: ' + fs.name);
var url = 'https://....';
// Parameters passed to getFile create a new file or return the file if it already exists.
fs.root.getFile('downloaded-image.png', { create: true, exclusive: false }, function (fileEntry) {
download(fileEntry, url, true);
}, alert("fail1"));
}, alert("fail2"));
}
function download(fileEntry, url, readBinaryData) {
var fileTransfer = new FileTransfer();
var fileURL = cordova.file.externalRootDirectory + "filename.png";
fileTransfer.download(
url,
fileURL,
function (entry) {
alert("Successful download...");
alert("download complete: " + entry.toURL());
if (readBinaryData) {
// Read the file...
readBinaryFile(entry);
}
else {
// Or just display it.
displayImageByFileURL(entry);
}
},
function (error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("upload error code" + error.code);
},
null, // or, pass false
{
//headers: {
// "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
//}
}
);
};